Android手机开发专题博客

Android手机开发专题博客,为您精选安卓手机开发教程,助您手机开发愉快!

公告信息
欢迎光临Android手机开发专题博客,祝您手机开发愉快!
文章档案

Android操作Gif动画示例教程

在Android如何操作GIF动画呢?虽然该平台提供了:animation类来帮我们实现动画效果,不过仍然不尽人意思,因此,下面分享一下集思广益的内容与大伙分享:

一、GIF动画分割

  在编码之后,需要利用第三方的工具将GIF动画分割成一个个的BMP或JPG格式的图片,再通过Android提供的animation类加载这些图片,以实现动画的效果。其实,说来说去,还是利用animation的方法,而且还需要手动分割GIF图片,很是麻烦!但是这种变相的方法也可以实现这个显示动画的功能了。

  这里不堆文字了,直接给出一个链接吧。之前已经说过了,是网上收集的资料,还请各位跳转到下面这个链接:http://www.cnblogs.com/TerryBlog/archive/2010/09/06/1819641.html 如果各位需要转载,请尊重这位博主的劳动成果。

二、GifView类

  去看看开发文档吧,找找这个类GifView类,有木有,有木有?结果是木有。对,这是一位N人写的一个加载Gif动画的类,并且已经将该类做成一个jar类库,供开发者直接加载使用。这个类的使用非常方便,跟普通的UI控件ImageView、Button、TextView等的使用方法都是一样的。

1、原理:

  我对这个类的核心不分代码详细分析了一下,基本是按照GIF文件格式,将GIF拆分成一个个BMP图像,然后再将这些BMP图片显示出来。原理跟第一种方法是一样的,但是GifView类将分割GIF图像帧的操作放在一个类中,不需要我们过多的关心GIF是如何拆分的,而且GifView类还提供了一个公开的方法,以方便开发者调用。

2、GifView提供的公开方法

设置GIF动画的数据来源:

/**
* 从GIF文件的文件数据加载GIF动画
*
@param gif的文件内容
*/
public void setGifImage(byte[] gif){
setGifDecoderImage(gif);
}

/**
* 从文件或网络输入流中加载GIF动画
*
@param 输入流
*/
public void setGifImage(InputStream is){
setGifDecoderImage(is);
}

/**
*
*
@param resId GIF动画的资源ID
*/
public void setGifImage(int resId){
Resources r
= this.getResources();
InputStream is
= r.openRawResource(resId);
setGifDecoderImage(is);
}

控制GIF动画的显示模式:动态或者静态

/**
* 显示GIF动画的第一帧的图像,也就是不让GIF动起来
*/
public void showCover(){
if(gifDecoder == null)
return;
pause
= true;
currentImage
= gifDecoder.getImage();
invalidate();
}
/**
* 动态显示GIF动画
*/
public void showAnimation(){
if(pause){
pause
= false;
}
}

设置GIF动画的显示比例:

/**
* 设置GIF动画显示的高度和宽度
*
@param width
*
@param height
*/
public void setShowDimension(int width,int height){
if(width > 0 && height > 0){
showWidth
= width;
showHeight
= height;
rect
= new Rect();
rect.left
= 0;
rect.top
= 0;
rect.right
= width;
rect.bottom
= height;
}
}

设置GID动画显示的方式:(三种)

先加载后显示:GifImageType.WAIT_FINISH

边加载边显示:GifImageType.SYNC_DECODER

只显示第一帧再显示:GifImageType.COVER

public void setGifImageType(GifImageType type){
if(gifDecoder == null)
animationType
= type;
}

3、使用方法

  具体的使用方法,将在文章的最后与GifView类的源代码和jar文件一起放出,这里先跟大家介绍一下。

a、将GifView.jar加入到项目中;

b、在布局文件中加入GifView控件,并设置GifView的基本属性:包括ID、宽度、高度、边距等等,与其他UI类似

<com.ant.liao.GifView
android:id="@+id/gif1"
android:layout_height
="wrap_content" android:layout_width="wrap_content"
android:paddingRight
="14px" android:enabled="false" />
c、在代码中添加控件实例,并加载显示。
// 从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);

 以上内容为本节介绍android操作gif的相关内容,希望您会喜欢。

新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"

2011/9/24 2:58:43 | android开发教程 | |

  • 发表评论