Android显示gif格式图片
jopen
11年前
大家知道,在Android中使用ImageView来显示gif格式的图片,我们无法得到gif格式图片该有的效果,它只会停在第一帧上,而不会继续。这时只能看到一张静态的图片,这里我们可以使用个简单的方法,即是使用Movie来显示图片。
1.在main.xml中添加ImageView,指定一张GIF图片为背景;
2.MainActivity.java
package com.yin.displayGIF; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.graphics.Movie; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity { private MyCustomView mView; private Movie mMovie; private long mMovieStart; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mView = new MyCustomView(this); setContentView(mView); } // 自定义一个类,继承View class MyCustomView extends View { public MyCustomView(Context context) { super(context); // 以文件流的方式读取文件 mMovie = Movie.decodeStream(getResources().openRawResource( R.drawable.my_picture)); } @Override protected void onDraw(Canvas canvas) { long curTime = android.os.SystemClock.uptimeMillis(); // 第一次播放 if (mMovieStart == 0) { mMovieStart = curTime; } if (mMovie != null) { int duration = mMovie.duration(); int relTime = (int) ((curTime - mMovieStart) % duration); mMovie.setTime(relTime); mMovie.draw(canvas, 0, 0); // 强制重绘 invalidate(); } super.onDraw(canvas); } } }