开源项目之Android 显示gif图片

GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目,其用法和 ImageView一样,支持gif图片

项目共4个目标文件,项目如图:


效果如图:


分析如下:

GifAction.java 观察者类,监视GIF是否加载成功
GifFrame.java 里面三个成员:当前图片、延时、下张Frame的链接。
GifDecoder.java 解码线程类
GifView.java 主类,包括常用方法,如GifView构造方法、设置图片源、延迟、绘制等。

定义如下:

public interface GifAction {

	/**
	 * gif解码观察者
	 * @param parseStatus 解码是否成功,成功会为true
	 * @param frameIndex 当前解码的第几帧,当全部解码成功后,这里为-1
	 */
	public void parseOk(boolean parseStatus,int frameIndex);
}
//线程操作gif图片解码
public class GifDecoder extends Thread
//gif框架
public class GifFrame
{
	/**
	 * 构造函数
	 * 
	 * @param im
	 *            图片
	 * @param del
	 *            延时
	 */
	public GifFrame(Bitmap im, int del)
	{
		image = im;
		delay = del;
	}

	/** 图片 */
	public Bitmap image;
	/** 延时 */
	public int delay;
	/** 下一帧 */
	public GifFrame nextFrame = null;
}
/**
 * GifView<br>
 * 本类可以显示一个gif动画,其使用方法和android的其它view(如imageview)一样。<br>
 * 如果要显示的gif太大,会出现OOM的问题。
 * 
 * @author liao
 * 
 */
public class GifView extends View implements GifAction

应用如下:

1-把GifView.jar加入你的项目。
2-在xml中配置GifView的基本属性,GifView继承自View类,和Button、ImageView一样是一个UI控件。如:
<com.ant.liao.GifView android:id="@+id/gif2"
 android:layout_height="wrap_content" android:layout_width="wrap_content"
 android:paddingTop="4px" android:paddingLeft="14px" android:enabled="false" />
3-在代码中配置常用属性:
// 从xml中得到GifView的句柄
gf1 = (GifView) findViewById(R.id.gif1);
// 设置Gif图片源
gf1.setGifImage(R.drawable.gif1);
// 添加监听器
gf1.setOnClickListener(this);
// 设置显示的大小,拉伸或者压缩
gf1.setShowDimension(300, 300);
// 设置加载方式:先加载后显示、边加载边显示、只显示第一帧再显示
gf1.setGifImageType(GifImageType.COVER);


代码简单易懂!~~

学习的目标是成熟!~~~


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值