最近做图片的时候碰到一个问题,就是imageview控件中放动态图,显示出来的效果跟静态图是一样的。于是我网上大概找了一下资料,对于这方面大概有三个解决方法
一、将gif用工具分割,一帧一帧的播放
这篇博客中有介绍http://www.cnblogs.com/TerryBlog/archive/2010/09/06/1819641.html
二、使用开源框架
Glide是个不错的选择,当然也还有其他的,下面这篇博客,对于Glide讲的还比较清晰
http://blog.csdn.net/fancylovejava/article/details/44747759
三、自定义imageview,使用Movie来播放
好了,对于这个,我亲手做了个demo,注解还算全
由于是要自定义控件,我们还可能会用到一些自定义的属性,因此在values目录下新建一个attrs.xml的文件,可以在这个文件中添加任何需要自定义的属性。这里我们目前只需要一个auto_play属性,代码如下所示:
<declare-styleable name="MyImageView">
<attr name="auto_play" format="boolean">
</attr>
</declare-styleable>
这个写好了,接下来我们要写一个类来继承imageview或view
package com.jp.tools;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import android.widget.ImageView;
import com.jp.activity.R;
import java.io.InputStream;
import java.lang.reflect.Field;
/**
* Created by Administrator on 2015/8/21.
*/
public class MyImageView extends ImageView implements View.OnClickListener
{
/**
* 播放GIF动画的关键类
*/
p