Android开源项目:GifView——Android显示GIF动画

下载:http://code.google.com/p/gifview/downloads/list

简介:android中现在没有直接显示gif的view,只能通过mediaplay来显示,且还常常不能正常显示出来,为此写了这个gifview,其用法和imageview一样

使用方法:

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);  

GifView的Jar包共有四个类:

GifAction.java:

观察者类,监视GIF是否加载成功

package com.ant.liao;    
public interface GifAction {  
/** 
  *gif解码观察者 
  * @hide 
  * @param parseStatus 解码是否成功,成功会为true            
  * @param frameIndex 当前解码的第几帧,当全部解码成功后,这里为-1            
  */       
public void parseOk(boolean parseStatus,int frameIndex);  }    

GifView的Jar包共有四个类:

GifAction.java:

观察者类,监视GIF是否加载成功

package com.ant.liao;    
public interface GifAction {  
/** 
  *gif解码观察者 
  * @hide 
  * @param parseStatus 解码是否成功,成功会为true            
  * @param frameIndex 当前解码的第几帧,当全部解码成功后,这里为-1            
  */       
public void parseOk(boolean parseStatus,int frameIndex);  }    

GifFrame.java

里面三个成员:当前图片、延时、下张Frame的链接。

package com.ant.liao;  
import android.graphics.Bitmap;  
public class GifFrame {   
/** 
* 构造函数  
* @param im 图片  
* @param del 延时  
*/          
public GifFrame(Bitmap im, int del) {    
image = im;           
delay = del;       
}             
public GifFrame(String name,int del){     
imageName = name;           
delay = del;          
}                 
/**图片*/        
public Bitmap image;     
/**延时*/          
public int delay;    
/**当图片存成文件时的文件名*/   
public String imageName = null;        
/**下一帧*/        
public GifFrame nextFrame = null;   
}    

 

GifDecoder.java

解码线程类

http://code.google.com/p/gifview/source/browse/trunk/src/com/ant/liao/GifDecoder.java

 

GifView.java

主类,包括常用方法,如GifView构造方法、设置图片源、延迟、绘制等。

http://code.google.com/p/gifview/source/browse/trunk/src/com/ant/liao/GifView.java

posted @ 2018-01-12 11:36  星辰之力  阅读(353)  评论(0编辑  收藏  举报