• Android显示gif格式图片


    大家知道,在Android中使用ImageView来显示gif格式的图片,我们无法得到gif格式图片该有的效果,它只会停在第一帧上,而不会继续。这时只能看到一张静态的图片,这里我们可以使用个简单的方法,即是使用Movie来显示图片。

    1.在main.xml中添加ImageView,指定一张GIF图片为背景;

    2.MainActivity.java

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    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, 00);
     
                    // 强制重绘
                    invalidate();
                }
                super.onDraw(canvas);
            }
        }
    }

  • 相关阅读:
    回首2016,展望2017
    认识多线程
    对CloseHandle用法的理解
    CDC、HDC、pDC之间的关系
    兼容位图和兼容DC的理解
    窗口中显示bmp图片的过程
    创建一个bmp格式的简单方法
    说明为什么Button控件不能使用CustomDraw技术
    MFC自绘Button按钮分析和实现
    VC之美化界面篇
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469896.html
Copyright © 2020-2023  润新知