您的位置:首页 > 移动开发 > Android开发

开源项目之Android 显示gif图片

2012-10-12 20:25 495 查看
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);

代码简单易懂!~~

学习的目标是成熟!~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: