Frame Animation 表示帧动画,是顺序播放事先做好的图像,跟电影类似,Android SDK提供了另外一个类AnimationDrawable来定义使用Frame Animation。

下面我们就来看看具体怎么使用帧动画吧。

首先在drawable目录下新建一个frame.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:drawable="@drawable/a"
        android:duration="2000">
    </item>
    <item
        android:drawable="@drawable/b"
        android:duration="2000">
    </item>
    <item
        android:drawable="@drawable/c"
        android:duration="2000">
    </item>

</animation-list>

上面xml文件中设置了动画变化期间各个图片和持续的时间

下面来看java代码文件怎么实现这个动画:
public void frameAnimation() throws FileNotFoundException {
		TextView mTextView = (TextView) findViewById(R.id.tv);
		mTextView.setBackgroundResource(R.drawable.frame);//把xml中设置好的帧动画资源设置给控件
		AnimationDrawable animDrawable = (AnimationDrawable) mTextView
				.getBackground();//得到该控件的背景Drawable对象
		Bitmap bitmap = BitmapFactory
				.decodeStream(new FileInputStream(Environment
						.getExternalStorageDirectory() + "/Download/aaa.jpg"));//在代码中动态添加背景图,也可以从服务器获取到的输入流动态添加
		animDrawable.addFrame(new BitmapDrawable(null, bitmap), 2000);//设置持续时间
		animDrawable.setAlpha(180);//设置图片的透明度
		animDrawable.setOneShot(false);//设置是否只运行一次,设置为true为循环运行
		animDrawable.start();
	}

这样注释上也说清楚了,可以通过xml文件添加图片也可以通过代码来动态添加。

贴个运行图吧:



最后总结一下使用FrameAnimation的具体步骤:
1、在xml文件中定义好需要显示的图片
2、在java文件中得到该控件的背景AnimationDrawable对象
3、调用AnimationDrawable对象的start()方法来开启这个帧动画



Android中FrameAnimation动画的使用的更多相关文章

  1. Android中矢量动画

    Android中矢量动画 Android中用<path> 标签来创建SVG,就好比控制着一支画笔,从一点到一点,动一条线. <path> 标签 支持一下属性 M = (Mx, ...

  2. Android中的动画

    Android中的动画分为: 1.逐帧动画(Frame Animation):  把动画过程的每张静态图片都收集起来,然后由Android来控制依次显示这些静态图片,然后利用人眼”视觉暂留“的原理,给 ...

  3. Android中的动画具体解释系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...

  4. Android中的动画详解系列【4】——Activity之间切换动画

    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 如 ...

  5. 初识android中的动画

    动画效果可以大大提高界面的交互效果,因此,动画在移动开发中的应用场景较为普遍.掌握基本的动画效果在成熟的软件开发中不可或缺.除此之外,用户对于动画的接受程度远高于文字和图片,利用动画效果可以加深用户对 ...

  6. Android中的动画机制

          1 逐帧动画   逐帧动画 就是一系列的图片按照一定的顺序展示的过程.   逐帧动画很简单, 只需要在drawable中或者anim中定义一个Animation-list 其中包含多个it ...

  7. Android中的动画效果

    动画的种类 透明动画alphaAnimation 在代码中配置动画: findViewById(R.id.btnAnimMe).setOnClickListener(new View.OnClickL ...

  8. Android中的动画学习总结

    android中动画可分为三种:帧动画,补间动画,和属性动画.其中属性动画是google推荐的,它可以实现前面两种动画的效果,运用起来更加灵活. 帧动画:顾名思义,就是一帧一帧的图片,快速播放形成的动 ...

  9. Android(java)学习笔记200:Android中View动画之 XML实现 和 代码实现

    1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...

随机推荐

  1. POJ2135:Farm Tour

    题意:给定一个无向图,从1走到n再从n走回1,每个边只能走一遍,求最短路 题解:可以定义一个源点s,和一个汇点t s和1相连容量为2,费用为0, t和n相连容量为2,费用为0 然后所用的边的容量都定为 ...

  2. bzoj2338[HNOI2011]数矩形 计算几何

    2338: [HNOI2011]数矩形 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1535  Solved: 693[Submit][Status ...

  3. splay模板(BZOJ3224)

    用splay实现二叉搜索树的模板,支持插入,删除,找前缀后缀,x的排名以及第x名的数. #include <cstdio> #define l(x) t[x].s[0] #define r ...

  4. 试说明采用双缓冲技术如何进行I/O操作

    输入设备先将第一个缓冲区装满数据,在输入设备向第二个缓冲区装数据时,处理机就可以从第一个缓冲区取出数据进行处理:当一个缓冲区的数据处理完毕,若第二个缓冲区已经装满,则处理机又可以从第二个缓冲区取出数据 ...

  5. 使用rsync在windows(服务端)与linux(客户端)之间同步

    说明: 1.cwRsyncServer服务端 系统:Windows7 IP地址:192.168.0.110 2.Rsync客户端 系统:CentOS 6.7 IP地址:192.168.0.141 实现 ...

  6. 使用word

    同样这也是生活中常用到的办公软件,word本质是一个排版软件,它与一般的编辑器不同的是,它将整个文本分成了一页一页的,当然这也是方便于打印文档. 使用word还是很容易的,一般来说需要注意以下几方面的 ...

  7. 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】

    我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...

  8. 在移动端画出真正的1px边框

    一.问题    写H5的样式时候,设置元素的边框为1px,不幸的事情在IOS设备上发生了,设计师会说,咦,边框怎么那么大,这是2px了吧?改成1px.我明明设置成1px了啊. 二.为什么边框变粗了? ...

  9. Angular 路由配置

    路由,简单的来说就是让组件之间进行跳转和参数的传递. 1.先在app目录下创建一个名为app.route.ts的路由组件 2.打开app.route.ts 在里面创建路由组件的代码(可通过编辑器快捷生 ...

  10. 【转】动态规划DP

    [数据结构与算法] DP 动态规划 介绍 原创 2017年02月13日 00:42:51 最近在看算法导论. DP全称是dynamic programming,这里programming不是编程,是一 ...