• 让ImageView可以使用gif的方法


    在自己的包中添加MyGifView.java(直接复制,粘贴),读取gif资源在MyGifView中第20行读取:

    MyGifView.java:

     1 package com.zzw.testgifuseimageview;
     2 
     3 import android.content.Context;
     4 import android.graphics.Canvas;
     5 import android.graphics.Movie;
     6 import android.util.AttributeSet;
     7 import android.view.View;
     8 
     9 
    10 public class MyGifView extends View {
    11 
    12     private long movieStart;
    13     private Movie movie;
    14 
    15     // 重写该构造方法
    16     public MyGifView(Context context, AttributeSet attributeSet) {
    17         super(context, attributeSet);
    18 
    19         // 以文件流(InputStream)读取进gif图片资源
    20         movie = Movie.decodeStream(getResources().openRawResource(R.drawable.test));
    21     }
    22 
    23     @Override
    24     protected void onDraw(Canvas canvas) {
    25         
    26         long curTime = android.os.SystemClock.uptimeMillis();
    27         
    28         // 第一次播放
    29         if (movieStart == 0) {
    30             movieStart = curTime;
    31         }
    32         if (movie != null) {
    33             int duraction = movie.duration();
    34             int relTime = (int) ((curTime - movieStart) % duraction);
    35             movie.setTime(relTime);
    36             movie.draw(canvas, 0, 0);
    37             // 强制重绘
    38             invalidate();
    39         }
    40         
    41         super.onDraw(canvas);
    42     }
    43 }

    把要放gif图片的ImageView的名字改为  包名.MyGifView

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.zzw.testgifuseimageview.MainActivity" >
    
        <com.zzw.testgifuseimageview.MyGifView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="20dp" />
    
    </RelativeLayout>

    MainActivity.java:

     1 package com.zzw.testgifuseimageview;
     2 
     3 import android.app.Activity;
     4 import android.os.Bundle;
     5 
     6 public class MainActivity extends Activity {
     7 
     8     @Override
     9     protected void onCreate(Bundle savedInstanceState) {
    10         super.onCreate(savedInstanceState);
    11         setContentView(R.layout.activity_main);
    12     }
    13 }

  • 相关阅读:
    常用MIME类型(Flv,Mp4的mime类型设置)
    iOS完全自学手册——[一]Ready?No!
    iOS开发总结--三方平台开发之微信支付
    iOS开发总结--三方平台开发之分享
    SVN图形客户端上传静态库.a文件失败
    iOS开发--应用国际化,应用内切换语言
    iOS开发总结——项目目录结构
    iOS开发总结——协议代理的认识
    iOS 学习笔记
    iOS mark list
  • 原文地址:https://www.cnblogs.com/zzw1994/p/4992396.html
Copyright © 2020-2023  润新知