Android学习之ImageView放置gif动态图

在Android开发中,遇到在ImageView中显示动态图的问题,常见的解决方案包括将gif分解播放、使用开源库和自定义ImageView通过Movie类播放。自定义的方案可能在处理大图时遭遇OOM问题,需要对图片大小进行控制。
摘要由CSDN通过智能技术生成

最近做图片的时候碰到一个问题,就是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
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值