android 播放gif还是帧动画,android 通过帧动画方式播放Gif动画

注意:经过本人测试,这个方法很耗内存, 图片一多就崩了.慎用

<1>用工具(photoshop或者FireWorks)将GIF动画图片分解成多个GIF静态图片,然后保存在resdrawable目录下。

<2>在resanim目录下定义这些GIF静态图片(假设将GIF动态图片分解成6个图片,anim1.gif....anim6.gif)。在frame_animation.xml文件中定义这些GIF文件,如下:

android:oneshot = false表示无限播放,为true时,表示播放一次。

<3>编写完动画文件后,就需要装载动画文件,并创建AnimationDrawable对象。

AnimationDrawable anim = (AnimationDrawable) getResources().getDrawable(R.anim.frame_animation);

创建完AnimationDrawable对象后,可以将该对象做为ImageView组件的背景

ImageView image = (ImageView) findViewById(R.id.image);

image.setBackgroundDrawable(anim);

除了上面的装载方式外,还有别的装载方式:

ImageView image = (ImageView) findViewById(R.id.image);

image.setBackgroundResource(R.anim.frame_animation);

Object backgroundObject = image.getBackground();

AnimationDrawable anim = (AnimationDrawable) backgroundObject;

AnimationDrawable类中与帧动画相关的方法有:

start:开始播放帧动画。

stop:停止播放帧动画。

setOneShot:设置动画只播放一次。为true是表示只播放一次。

addFrame:向AnimationDrawable对象中添加新的帧。

isOneShot:判断是否只播放一次。

getNumberOfFrames:返回动画的帧数。

getFrame:根据帧索引获得指定帧的Drawable对象。帧从0开始。

getDuration:获得指定帧的停留时间。

setAlpha:设置帧的透明度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值