本章介绍Android中的View Animation。
目录
1. View Animation简介
2. View Animation的语法规则
3. View Animation的示例
View Animation简介
View Animation(Tween Animation): 补间动画,给出两个关键帧,通过一些算法将给定属性值在给定的时间内在两个关键帧间渐变。
View Animation只能用来实现四种基本动作:透明/伸缩/移动/旋转。它与"Property Animation适用于任意Object类型不同",View Animation只适用于View。但是View Animation相比于Property Animation的使用更加简单。
View Animation的语法规则
1. View Animation的样式
View Animation通常在res/anim目录下新建一个xml文件来定义。xml文件的格式如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
</set>
</set>
说明:
(01) set: 是动画的集合,相当于一个容器。
(02) interpolator: 动画的动作类型,比如accelerate_interpolator类型的动画是加速的,它会越来越快。
(03) shareInterpolator: 将set的interpolator应用到set所包行的动画中。
(04) alpha: 透明度。
a) fromAlpha: 起始动画的透明度。它的值是0~1.0之间;0表示完全透明,1.0表示完全不透明。
b) toAlpha: 结束动画的透明度。它的值是0~1.0之间;0表示完全透明,1.0表示完全不透明。
(05) scale: 缩放。
a) fromXScale: 起始动画在X轴上的缩放倍数。0表示没有,2表示2倍。
b) toXScale: 结束动画在X轴上的缩放倍数。0表示没有,2表示2倍。
c) fromYScale: 起始动画在Y轴上的缩放倍数。0表示没有,2表示2倍。
d) toYScale: 结束动画在Y轴上的缩放倍数。0表示没有,2表示2倍。
e) pivotX: 动画缩放时,中心点在X轴上的位置(相对于原始的视图)。50%表示在视图的X轴中间。
f) pivotY: 动画缩放时,中心点在Y轴上的位置(相对于原始的视图)。50%表示在视图的Y轴中间。
(06) training: 移动。
a) fromXDelta: 起始动画在X轴上的偏移像素(相对于视图左上角)。
b) toXDelta: 结束动画在X轴上的偏移像素(相对于视图左上角)。
c) fromYDelta: 起始动画在Y轴上的偏移像素(相对于视图左上角)。
d) toYDelta: 结束动画在Y轴上的偏移像素(相对于视图左上角)。
(07) rotate: 旋转。
a) fromDegrees: 起始动画在的角度。可以是负数,也可以大于360。
b) toDegrees: 起始动画在的角度。可以是负数,也可以大于360。
c) pivotX: 动画旋转时,中心点在X轴上的位置(相对于原始的视图)。50%表示在视图的X轴中间。
d) pivotY: 动画旋转时,中心点在Y轴上的位置(相对于原始的视图)。50%表示在视图的Y轴中间。
rotate既可以顺时针旋转,也可以逆时针旋转。
2. interpolator的样式
系统自带的interpolator样式如下:
@android:anim/accelerate_decelerate_interpolator @android:anim/accelerate_interpolator @android:anim/anticipate_interpolator @android:anim/anticipate_overshoot_interpolator @android:anim/bounce_interpolator @android:anim/cycle_interpolator @android:anim/decelerate_interpolator @android:anim/linear_interpolator @android:anim/overshoot_interpolator
View Animation的示例
点击查看: View Animation的示例源码
该示例包括View Animation的"透明/伸缩/移动/旋转",也包括"它们的组合"。
View Animation的具体播放代码如下:
Animation anim = AnimationUtils.loadAnimation(this, R.anim.anim_alpha);
view.startAnimation(anim);
说明:view是一个View对象。