zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }

  • 相关阅读:
    本机mysql 5.7服务启动后停止,某些服务在未有其他应用程序使用时停止
    java数据结构 • 面向对象 • 异常 • 随机数·时间
    获取对象信息
    集合的运算律
    常用的逻辑符号
    未解决问题
    继承和多态
    访问权限
    类和实例
    第三方模块安装
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6469896.html
Copyright © 2011-2022 走看看