Android顯示gif格式圖片的代碼
大家知道,在Android中使用ImageView來顯示gif格式的圖片,我們無法得到gif格式圖片該有的效果,它只會停在第一幀上,而不會繼續。這時只能看到一張靜態的圖片,這里我們可以使用個簡單的方法,即是使用Movie來顯示圖片。
1.在main.xml中添加ImageView,指定一張GIF圖片為背景;
2.MainActivity.java
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);
}
}
} 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!