android 播放gif动画效果,android 通过帧动画方式播放Gif动画

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

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

<2>在res\anim目录下定义这些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:设置帧的透明度。

View动画(补间动画)

补间动画的属性 Animation的属性 JAVA方法 XML属性 解释 setDetachWallpaper(boolean) android:detachWallpaper 是否在壁纸上运行 se ...

Android PowerImageView实现,可以播放动画的强大ImageView

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/11100315 我个人是比较喜欢逛贴吧的,贴吧里总是会有很多搞笑的动态图片,经常看一 ...

Android实现播放GIF动画的强大ImageView

我个人是比较喜欢逛贴吧的,贴吧里总是会有很多搞笑的动态图片,经常看一看就会感觉欢乐很多,可以释放掉不少平时的压力.确实,比起一张单调的图片,动态图片明显更加的有意思.一般动态图片都是GIF格式的,浏览 ...

显示gif动画(帧动画的播放)

在android上显示gif不太方便,虽然有控件可以实现,但是效果不是很好,保险点儿的作法还是使用帧动画来处理.①在XML中定义animation-list:

Android中的帧动画与补间动画的使用

前言 在日常开发中,我们有时候须要一些好看的动画效果,这时能够充分利用Android提供的这几种动画来实现. Android提供了3种类型的动画: 补间动画:补间动画能够应用于View,让你能够定义一 ...

Android动画系列之帧动画和补间动画

原文首发于微信公众号:jzman-blog,欢迎关注交流! Android 提供三种动画:帧动画.补间动画和属性动画,本篇文章介绍帧动画以及补间动画的使用,属性动画的使用将在后面的文章中分享,那就来复 ...

Android播放gif动画,增加屏幕掉金币效果

前言:播放gif的版本有很多,我这边使用Android自带的Movie类播放gif动画,也是在别人的基础上进行修改.有同样需求的朋友可以参考我的demo. 1.效果图如下: 2.部分主要代码 Main ...

Android 逐帧动画

原理: 逐帧动画是最简单的一种动画.原理就是把几张图片连续显示出来,以达到动画的效果.就相当于下面这种手绘翻页动画啦~ 实现: 1.需要建立一个animation-list来设置静态图片资源.持续时间 ...

随机推荐

HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)

Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章

WCF学习之二

今天在照着网上教程做练习的时候,用IE浏览器运行的时候遇到了一些问题 “找不到类型“WCFService.Service1”,它在 ServiceHost 指令中提供为 Service 特性值,或在配 ...

DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM

背景: 从DICOM网络传输一文开始,相继介绍了C-ECHO.C-FIND.C-STORE.C-MOVE等DIMSE-C服务的简单实现,博文中的代码给出的实例都是基于fo-dicom库来实现的,原因只 ...

[最新版]MJRefresh解析与详细使用指导

俗话说 "工欲善其事,必先利其器",好的成熟的第三方,是我们开发路上的利器:俗话又说"君子生非异也,善假于物也"NB的人并不是生下来就和别人不一样,只是他们擅于 ...

event.target的第一次

今天在学习其他人代码的时候见到了event.target.nodeName,event.target.dataset.刚开始是一头雾水,便google一下.发现大多数给出的词条都是有关jQuery事件 ...

Java-IO之管道(PipedInputStream和PipedOutputStream)

java中PipedInputStream和PipedOutputStream分别是管道输入流和管道输出流,它的作用是让多线程可以通过管道进行线程间的通讯,在使用管道通信时,必须将PipedInput ...

keytool 错误: java.lang.Exception: 密钥库文件不存在: keystore

通过Android Studio编译器获取SHA1 第一步.打开Android Studio的Terminal工具 第二步.输入命令:keytool -v -list -keystore keysto ...

ACL访问控制

/etc/squid/squid.conf 定义语法: acl aclname  acltype   string acl  aclname  acltype   "file" s ...

将ABP的数据库从SQLSERVER迁移到MySql

摘要:之前跟着网上的一些教程,学习了一点ABP的知识.最近想说把默认的SQLSERVER数据迁移到mysql吧 首先网上搜一波 安装MySql.Data.Entity 然后你需要安装 MySql.Da ...

[微信开发] - 微信支付 JSAPI 形式

微信官方的JSAPI文档 微信官方的JSAPI支付SDK与DEMO下载 查看JSAPI的API可以从这里看 下载了支付DEMO其实有些地方不对的,比如如果做沙盒测试的时候,需要使用getsignkey ...

你可能感兴趣的:(android,播放gif动画效果)