转载请标明出处: http://blog.csdn.net/Airsaid/article/details/51591239
本文出自:周游的博客
前言
上一篇博客中写了逐帧动画(Frame)的使用,Android中除了支持逐帧动画(Frame)之外,也提供了对补间(Tween)动画的支持。补间动画就是指开发者只需要指定动画的开始、结束等“关键帧”,而动画的变化的“中间帧”则由系统计算并补齐。这也是“补间”二字的来意。
补间动画对应的类是:Animation。由于Animation是个抽象类,所以我们在使用的时候需要使用它的子类,补间动画的继承关系见下图:
Java类名 | XML关键字 | 描述信息 |
---|---|---|
ScaleAnimation | <scale> |
渐变尺寸伸缩动画效果 |
TranslateAnimation | <translate> |
画面转换位置移动动画效果 |
AnimationSet | <set> |
一个持有alpah、scale、translate、rotate或者其他set元素的容器 |
AlphaAnimation | <alpha> |
渐变透明度动画效果 |
RotateAnimation | <rotate> |
画面转移旋转动画效果 |
接下来详细的介绍一下补间动画的使用。
开发环境
- IDE版本:AndroidStudio2.0
- 物理机版本:Win7旗舰版(64位)
补间动画的属性
Animation的属性
JAVA方法 | XML属性 | 解释 |
---|---|---|
setDetachWallpaper(boolean) | android:detachWallpaper | 是否在壁纸上运行 |
setDuration(long) | android:duration | 设置动画持续时间,单位为毫秒 |
setFillAfter(boolean) | android:fillAfter | 控件动画结束时控件是否保持动画最后状态 |
setFillBefore(boolean) | android:fillBefore | 控件动画结束时控件是否还原到开始动画前的状态 |
setFillEnable(boolean) | android:fillEnable(boolean) | 与android:fillBefore效果相同 |
setInterpolator(boolean) | android:interpolator | 设置插值器(指定的动画效果,如:回弹等) |
setRepeatCount(int) | android:repeatCount | 重复次数 |
setRepeatMode(int) | android:repeatMode | 重复类型:reverse倒序回放、restart从头播放 |
setStartOffset(long) | android:startOffset | 调用start函数后等待开行运行的时间,单位为毫秒 |
setZadjustment(int) | android:zAdjustment | 表示被设置动画的内容运行时在Z轴的位置(top/bottom/normal),默认为normal |
由于Animation类是其抽象父类,那么我们在使用补间动画无论是哪一种都已经具备了以上属性。
下面是每一种补间动画的特有属性:
Alpha属性
JAVA方法 | XML属性 | 解释 |
---|---|---|
AlphaAnimation(float fromAlpha,…) | android:fromAlpha | 动画开始的透明度(0.0到1.0,0.0是全透明,1.0是不透明) |
AlphaAnimation(…, float toAlpha) | androdi:toAlpha | 动画结束的透明度(同上) |
Rotate属性
JAVA方法 | XML属性 | 解释 |
---|---|---|
RotateAnima |