AnimationSet的使用
Animations的使用(3)
1 AnimationSet的使用方法
什么是AnimationSet
1 AnimationSet是Animation的子类
2 一个AnimationSet包含了一系列的Animation
3 针对AnimationSet设置一些Animation的常见属性(如StartOffset,duration等),可以被包含在AnimationSet当中的Animation继承
使用步骤:(类似1中的例子 只不过含有2个动画效果)
- AnimationSet animationSet = new AnimationSet(ture);
- AlpahaAnimation alpha = new AlphaAnimation(...);
- RotateAnimation rotate = new RotateAnimation(...);
- animationSet.addAnimation(alpha);
- animationSet.addAnimaion(rotate);
- animationSet.setDuration(2000);
- animationSet.setStartOffset(500);
- imageView.startAnimation(animationSet);
- AnimationSet animationSet = new AnimationSet(ture);
- AlpahaAnimation alpha = new AlphaAnimation(...);
- RotateAnimation rotate = new RotateAnimation(...);
- animationSet.addAnimation(alpha);
- animationSet.addAnimaion(rotate);
- animationSet.setDuration(2000);
- animationSet.setStartOffset(500);
- imageView.startAnimation(animationSet);
2 Interpolator的使用方法
Interpolator定义了动画变化速率,在Animations框架中定义了以下几种Interpolator
AccelerateDecelerateInterpolator:在动画开始和结束的地方速率变化较慢,中间的时候加速
AccelerateInterpolator:在动画开始的地方速率改变较慢,然后加速
CycleInterpolator:动画循环播放特定次数,速率改变沿正弦曲线
DecelerateInterpolator:在动画开始的地方速率改变较慢,然后减速
LinearInterpolator:以均匀的速率改变
设置的地方就在set标签中的 android:interpolator="@android:anim/accelerate_interpolator"
而之后还有一个android:shareInterpolator="true" 从名字就可以看到这是为set中所有的动画设置Interpolator
如果要单独设置 则将shareInterpolator设为false 然后为每个动画中单独定义Interpolator
以上是在xml中设置,如果要在代码中设置
animationSet.setInterpolator(new AccelerateInterpolator());(也可以单独设置)
注意在AnimationSet的构造方法中有一个boolean参数,这个参数就是shareInterpolator的设定
3 Frame-By-Frame Animations的使用方法
1 在res/drawable中创建一个xml文件,定义Animation的动画播放序列 anim_nv.xml
- <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
- android:oneshot="false">
- <item android:drawable="@drawable/nv1"
- android:duration="500" />
- <item android:drawable="@drawable/nv2"
- android:duration="500" />
- <item android:drawable="@drawable/nv3"
- android:duration="500" />
- <item android:drawable="@drawable/nv4"
- android:duration="500" />
- </animation-list>
- <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
- android:oneshot="false">
- <item android:drawable="@drawable/nv1"
- android:duration="500" />
- <item android:drawable="@drawable/nv2"
- android:duration="500" />
- <item android:drawable="@drawable/nv3"
- android:duration="500" />
- <item android:drawable="@drawable/nv4"
- android:duration="500" />
- </animation-list>
2 为ImageView设置背景资源
- imageView.setBackgroundResource(R.drawable.anim_nv);
- imageView.setBackgroundResource(R.drawable.anim_nv);
3 通过ImageView得到AnimationDrawable
- AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
- AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();
3 执行动画
- animationDrawable.start();
- animationDrawable.start();
AnimationSet的使用的更多相关文章
- Android动画之Interpolator和AnimationSet
AnimationSet可以加入Animation,加入之后设置AnimationSet对加入的所有Animation都有效. AnimationSet anim=new AnimationSet(t ...
- AndroidUI 视图动画-混合动画效果 (AnimationSet)/动画效果监听
在前面介绍了几种动画效果:透明动画效果(AlphsAnimation).移动动画效果(TranslateAnimation).旋转动画效果(RotateAnimation).缩放动画效果(ScaleA ...
- 通过AnimationSet设置动画
在代码中可以通过set来设置多个动画属性,这里分开来设置不同的属性. 首先先贴上布局文件,里面的imageview是用来做动画的控件 <RelativeLayout xmlns:android= ...
- 通过AnimationSet 同步或一部播放多个动画 Android 属性动画(Property Animation) 完全解析 (下)
AnimationSet提供了一个把多个动画组合成一个组合的机制,并可设置组中动画的时序关系,如同时播放,顺序播放等. 以下例子同时应用5个动画: 播放anim1: 同时播放anim2,anim3,a ...
- 虾扯蛋:Android View动画 Animation不完全解析
本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...
- app引导页(背景图片切换加各个页面动画效果)
前言:不知不觉中又加班到了10点半,整个启动页面做了一天多的时间,一共有三个页面,每个页面都有动画效果,动画效果调试起来麻烦,既要跟ios统一,又要匹配各种不同的手机,然后产品经理还有可能在中途改需求 ...
- Android开发学习——动画
帧动画> 一张张图片不断的切换,形成动画效果* 在drawable目录下定义xml文件,子节点为animation-list,在这里定义要显示的图片和每张图片的显示时长 ...
- Android动画效果之Tween Animation(补间动画)
前言: 最近公司项目下个版本迭代里面设计了很多动画效果,在以往的项目中开发中也会经常用到动画,所以在公司下个版本迭代开始之前,抽空总结一下Android动画.今天主要总结Tween Animation ...
- Android基础总结(十一)
Fragment(重要) 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容 生命周期方法跟Activity一致,可以理解把其为就是一个Activity fragmen ...
随机推荐
- SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点
mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...
- Java heap space
//首先检查程序有没有限入死循环 这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的.第一次出现这样的的问题以后,引发了其他的问 ...
- 《Windows驱动开发技术详解》之驱动程序的同步处理
中断请求级 中断请求被分为软件中断和硬件中断两种,这些中断都映射成不同级别的中断请求级.每个中断请求都有各自的优先级别,正在运行的线程随时都可以被中断打断,进入到中断处理程序.优先级高的中断来临时,处 ...
- Chapter 2 Open Book——19
He bent over and began scraping together a pile of the white mush. 他弯下腰,开始团起一个白色的雪球. "I'll see ...
- Chapter 2 Open Book——3
But when I walked into the cafeteria with Jessica — 但是当我和Jessica 一起走进自助餐厅的时候 trying to keep my eyes ...
- restlet上传图片代码
客户端用的是 jquery file upload, 服务器端用的是restlet package org.soachina.rest.component.resource; import java. ...
- 转载 C语言中volatile关键字的作用
一.前言 1.编译器优化介绍: 由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问.另外在现代CPU中指令的执行并不一定严格按照顺序执行,没 ...
- Update Case的用法与execute执行字符串
摘自于网路:http://www.cnblogs.com/joinger/articles/1297160.html update h_crm_SafetyAccessUser set ...
- event小解
首先是一个小例子: <input type="text" onclick="a(event)"/> function a(event){ con ...
- 1.1 python 安装(Windows)
1.浏览器输入URL http://www.python.org/download/ https://www.python.org/downloads/release/python-2712/ Win ...