本文转载:http://blog.csdn.net/aminfo/article/details/7847761

第一步:先上图片素材,以下素材放到res/drawable目录下:

第二步:上动画Animation-list帧布局文件,有2个,一个是按顺序显示动画,一个是倒序显示动画,文件存放在res/drawable目录下

顺序显示动画文件:animation1.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- 根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画根标签下,通过item标签对动画中的每一个图片进行声明android:duration 表示展示所用的该图片的时间长度-->
<animation-listxmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="true"><item android:drawable="@drawable/icon1" android:duration="150"></item><item android:drawable="@drawable/icon2" android:duration="150"></item><item android:drawable="@drawable/icon3" android:duration="150"></item><item android:drawable="@drawable/icon4" android:duration="150"></item><item android:drawable="@drawable/icon5" android:duration="150"></item><item android:drawable="@drawable/icon6" android:duration="150"></item>
</animation-list>

倒序显示动画文件:animation2.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- 根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画根标签下,通过item标签对动画中的每一个图片进行声明android:duration 表示展示所用的该图片的时间长度-->
<animation-listxmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="true"><item android:drawable="@drawable/icon6" android:duration="150"></item><item android:drawable="@drawable/icon5" android:duration="150"></item><item android:drawable="@drawable/icon4" android:duration="150"></item><item android:drawable="@drawable/icon3" android:duration="150"></item><item android:drawable="@drawable/icon2" android:duration="150"></item><item android:drawable="@drawable/icon1" android:duration="150"></item>
</animation-list>

第三步:上布局文件,放在res/layout目录下,文件名main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><ImageView android:id="@+id/animationIV"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5px"android:src="@drawable/animation1"/> <Button android:id="@+id/buttonA"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5px"android:text="顺序显示" /><Button android:id="@+id/buttonB"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5px"android:text="停止" /><Button android:id="@+id/buttonC"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5px"android:text="倒序显示" /></LinearLayout>

第四步:上Activity文件,文件名:MainActivity.java

package org.shuxiang.test;import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;public class Activity10 extends Activity
{private ImageView animationIV;private Button buttonA, buttonB, buttonC;private AnimationDrawable animationDrawable;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.test10);animationIV = (ImageView) findViewById(R.id.animationIV);buttonA = (Button) findViewById(R.id.buttonA);buttonB = (Button) findViewById(R.id.buttonB);buttonC = (Button) findViewById(R.id.buttonC);buttonA.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub
                animationIV.setImageResource(R.drawable.animation1);animationDrawable = (AnimationDrawable) animationIV.getDrawable();animationDrawable.start();}}); buttonB.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubanimationDrawable = (AnimationDrawable) animationIV.getDrawable();animationDrawable.stop();}});buttonC.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stub
                animationIV.setImageResource(R.drawable.animation2);animationDrawable = (AnimationDrawable) animationIV.getDrawable();animationDrawable.start();}            });        }
}

Android 用Animation-list实现逐帧动画相关推荐

  1. Android 动画解析(一) 逐帧动画(Frame Animation)

    简介 开发Android的同学都知道,Android中的动画有逐帧动画(Frame Animation).补间动画(Tween Animation)以及属性动画.其中,逐帧动画(Frame Anima ...

  2. 安卓动画全解:补间动画(视图动画)、布局动画、属性动画、逐帧动画。动画Animation属性、Alpha属性、Scale属性、Translate属性、Rotate属性,动画集AnimationSet

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓动画全解:补间动画(视图动画).布局动画.属性动画.逐帧动画. 主要内容包含:动画Animation属性.Alpha属性.Scale属性.Tran ...

  3. Android案例(逐帧动画和属性动画)

    1.实现效果 2.布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmln ...

  4. Android自定义控件:动画类---逐帧动画AnimationDrawable

    1:概述 Android动画包括View Animation(视图动画)和Property Animator(属性动画),而View Animation包括Tween Animation(补间动画)和 ...

  5. Android 高级编程【6个实战案例(附源码):刮刮卡、补间动画、逐帧动画、Fragment、RecyclerView、下拉刷新】

    目   录 刮刮卡案例[ScratchCard] 结构图 activity_main.xml MainActivity.java 运行效果图 补间动画(Tween Animation) 逐帧动画(Fr ...

  6. Android中的动画2(逐帧动画)

    逐帧动画就比较简单了,就是一帧一帧的播放动画,每一帧都是有我们来定义的. 在res/drawable文件夹下新建一个Root element为animation-list的xml文件,命名为anima ...

  7. android仿微信红包动画,Android仿微信打开红包动画(逐帧动画)

    Frame Animation(逐帧动画): 逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样.和补间动画一样可以通过xml实现也可 ...

  8. android语音动画,Android逐帧动画的简单使用-语音播放效果的实现

    逐帧动画(Frame-By-Frame Animation)原理很简单,即快速切换不同的图片,形成动画效果.Android中逐帧动画的实现方式也很简单,下面以语音播放效果为例说明. 1. 首先准备图片 ...

  9. Android逐帧动画和补间动画

    本篇博客来看一下Android中的逐帧动画和补间动画. 一.逐帧动画 逐帧动画也叫Drawable Animation. 在Android中实现逐帧动画,就是由设计师给出一系列状态不断变化的图片, 开 ...

  10. 逐帧动画(Frame Animation)

       逐帧动画也叫Drawable Animation,是最简单最直观的动画类型,它利用人眼的视觉暂留效应(也就是光对视网膜所产生的视觉),在光停止作用后,仍然会保留一段事件的现象.     在And ...

最新文章

  1. Gut:人体口腔菌群的稳定性和动态变化规律
  2. Property ‘configuration‘ and ‘configLocation‘ can not specified with together
  3. Android4.0与2.3的差异
  4. oracle保存type类型,oracle type类型
  5. oracle get_ddl XSL error 解决方法
  6. (转)GridView固定表头
  7. Java Integer 对象的比较
  8. web前端项目实例网站_2020最全web前端项目实战课程(含项目实战+源码)
  9. 【毕设狗】【单片机毕业设计】基于单片机的智能垃圾桶设计-实物设计
  10. Kerberos认证模型(c语言实现)
  11. android sync 文件夹,如何使用FolderSync在安卓手机上同步文件夹到坚果云?
  12. ubuntu18.04安装dash-to-dock出错的问题
  13. 十大编程语言黑客向,学会一个不怕没工作,全部学会随便秀操作
  14. 科技+卫生=智慧公厕,城市焕然一新!
  15. matlab armax和arima区别,ARMA和ARIMA的区别是什么?
  16. 在外企必会的英文单词
  17. css实现元素翻转(不是旋转)
  18. 面试题:strcpy考虑内存重叠
  19. python读json文件数组_如何在python中从json文件读取json对象数组
  20. 无线充电技术目前发展情况如何?对单片机行业有什么启示

热门文章

  1. mysql数据库字符集作用_MYSQL数据库字符集支持
  2. linux 内核位置无关,Linux内核启动阶段虚实地址映射
  3. MOSFET驱动器汇总 : 单个N-CHANNEL,半桥,全桥,3项桥
  4. 使用Postman测试导入和导出excel
  5. 天体运行轨迹_海王星轨道外发现139个新天体, 能揭开太阳系第九颗行星奥秘?...
  6. hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖
  7. oracle数据库中insert,【Oracle】sql插入之 insert all、insert first
  8. php中strtotime(date,js模仿php中strtotime()与date()函数实现方法
  9. 丛林谜题JAVA_丛林王座图文全剧情流程攻略_全谜题解答通关流程_3DM单机
  10. ad域时间源配置_Windows网络服务与配置管理之活动目录学习