Android顯示gif格式圖片

jopen 11年前發布 | 48K 次閱讀 Android Android開發 移動開發

大家知道,在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);
        }
    }
}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!