2.2.1 概述
使用 XML 来添加动画可以很大限度地提高代码复用性,但有时只需要临时使用一个动画,就没有必要单独写一个 XML 动画文件了,可以使用代码的方法生成一个动画操作。
标签 | 类 |
---|---|
scale | ScaleAnimation |
alpha | AlphaAnimation |
rotate | RotateAnimation |
translate | TranslateAnimation |
set | AnimationSet |
Animation 类中共用的属性方法:
标签属性 | 方 法 | 说明 |
---|---|---|
android:duration | setDuration(long) | 动画的运行时间 (以毫秒为单位);必须设置 |
android:fillAfter | setFillAfter(boolean) | 动画结束时是否保持动画最后的状态;默认为 false,优先于 fillBefore。 |
android:fillBefore | setFillBefore(boolean) | 动画结束时是否还原到开始动画前的状态;默认为 true。 |
android:fillEnabled | setFillEnabled(boolean) | 是否应用 fillBefore 的值,对 fillAfter 无影响;默认为true。 |
android:repeatCount | setRepeatCount(int) | 重复次数,取值为整数或 Animation.INFINITE。 |
android:repeatMode | setRepeatMode(int) | 重复类型有两个值,reverse 表示倒序回放,restart 表示从头播放 |
android:interpolator | setInterpolator(Interpolator) | 设定插值器(指定的动画效果,譬如回弹等) |
android:detachWallpaper | setDetachWallpaper(boolean) | |
android:startOffset | setStartOffset(long) | 调用 start 函数之后等待开始运行的时间,单位为毫秒 |
android:zAdjustment | setZAdjustment(int) | 表示被设置动画的内容运行时在 Z 轴上的位置(top / bottom / normal),默认为 normal。 |
2.2.2 ScaleAnimation
|
|
pivotXType 取值为:
Animation.ABSOLUTE、Animation.RELATIVE_TO_SELF、Animation.RELATIVE_TO_PARENT。
示例:
对应代码:
2.2.3 AlphaAnimation
|
|
示例:
对应代码:
2.2.4 RotateAnimation
|
|
pivotXType 取值为:
Animation.ABSOLUTE、Animation.RELATIVE_TO_SELF、Animation.RELATIVE_TO_PARENT
示例:
对应代码:
2.2.5 TranslateAnimation
|
|
示例:
对应代码:
2.2.6 AnimationSet
|
|
shareInterpolator 参数取值为 true 时,用于 AnimationSet 类中定义一个插值器,其下面的所有动画共用该插值器;取值为 false,则表示其下面的动画定义各自的插值器。增加动画的函数:
示例:
对应代码:
2.2.7 Animation
Animation 还有一些比较实用的方法介绍,如下:
方法 | 说明 |
---|---|
cancel() | 取消动画 |
reset() | 将控件重置到动画开始前状态 |
hasStarted() | 判断当前 Animation 是否开始 |
hasEnded() | 判断当前 Animation 是否结束 |
setAnimationListener() | 设置动画监听 |
Animation.AnimationListener:
示例: