Android提供了3种类型的动画: 1.补间(Tween)动画: 补间动画就是指开发者只需要指定动画开始、动画结束“关键帧”,而动画变化的“中间帧”由系统计算、并补齐。补间动画可以应用于View,我们可以定义一系列关于位置、大小、旋转和透明度的改变,从而让View的内容动起来。
2.逐帧(Frame)动画:传统的基于单元格的动画,每帧显示一个不同的Drawable。由于系统控制依次显示这些图像,利用人眼“视觉暂留”的原理,给用户造成“动画”的错觉。逐帧动画的动画原理与放电影的原理完成一样。
3.差值属性动画:属性动画系统几乎可以让应用程序中的任何对象动起来。它是一个框架,在一定时间内,通过使用指定的内插技术来影响任意的对象属性。
补间(Tween)动画
补间动画经常用于:
1. Activity之间的转换
2.Activity内的布局间的转换
3.相同View中的不同内容间的转换
4.为用户提供反馈,例如提示进度、通过“晃动”输入框来说明错误或者无效的数据输入。
创建补间动画:补间动画是使用Animation类创建的。
1.AlphaAnimation 可以改变View的透明度
2.RotateAnimation 可以在XY平面上旋转选中的ViewCanvas
3.ScaleAnimation 允许缩放选中的View
4.TranslateAnimation 可以在屏幕上移动选中的View(但是它只能在其原始边界的范围内显示)
Android提供了AnimationSet类来对动画进行分组和配置。从而让它们作为一个集合运行,如下所示。可以定义集合中的每一个动画的开始时间和持续时间,以此来控制动画序列的时刻安排和顺序。
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<scale
android:duration="1000"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />
</set>
通过调用startAnimation方法,可以将动画应用到任意View中,只需要传递给这个方法要应用的动画或者动画集合即可。
动画序列将会运行一次,然后停止,除非使用动画或者动画集合中的setRepeatMode和setRepeatCount方法修改这种行为。可以通过把重复模式设置为RESTART或者REVERSE来强制动画循环或者反向运行。设置重复计数可以控制动画重复的次数。
myAnimation.setRepeatMode(Animation.RESTART);
myAnimation.setRepeatCount(Animation.INFINITE);
myView.startAnimation(myAnimation);