Android的动画可以分为三种:View动画、帧动画、和属性动画,其实帧动画也属于View动画的一种,只不过它和平移、旋转等常见的View动画在表现形式上略有不同。
1、View动画
View动画的作用对象是View,它支持4中动画效果,分别是平移动画、缩放动画、旋转动画和透明动画。除了这四种典型的变换效果外,帧动画也属于View动画,但是帧动画的表现形式上和上面的四种动画变化效果不太一样。
1.1 View的种类
View动画的四种变化效果对应着Animation的四个子类:TranslateAnimation、ScaleAnimation、RotateAnimation和AlphaAnimation。这四种动画既可以通过XML来定义,也可以通过代码来动态创建,对于View动画来说,建议采用XML来定义动画,因为XML格式的动画可读性更好。
View动画既可以是单个动画,也可以由一系列的动画组成。
set标签标示动画集合,对应AnimationSet类,它可以包含若干个动画,并且它的内部也是可以嵌套其他动画集合的。
1.2 interpolator
表示动画集合所采用的插值器,插值器影响动画的速度,比如非匀速动画就需要通过插值器来控制动画的播放过程。这个属性可以不指定,默认为@android:anim/accelerate_decelerate_interpolator,为加速减速插值器,
1.3 shareInterpolator
表示集合中的动画是否和集合共享同一个插值器。如果集合不指定插值器,那么子动画就需要单独指定所需的插值器或使用默认值。
translate标签表示平移动画,对应TranslateAnimation类,它可以使一个View在水平和竖直方向完成平移的动画效果,属性含义如下:
android:fromXDelta——表示x的起始值,比如0
android:toXDelta——表示x的结束值,比如100
android:fromYDelta——表示y的起始值
android:toYDelta——表示y的结束值
scale标签表示缩放动画,对应ScaleAnimation,它可以使View具有放大或者缩小的动画效果,它的属性含义如下:
android:fromXScale——水平方向缩放的起始值,比如0.5
android:toXScale——水平方向缩放的结束值,比如1.2
android:fromYScale——竖直方向缩放的起始值
android:toYScale——竖直方向缩放的起始值
android:pivotX——缩放的轴点的x坐标,它会影响缩放的效果
android:pivotY——缩放的轴点y坐标,它会影响缩放的效果
rotate标签表示旋转动画,对于RotateAnimation,它可以使View具有旋转的动画效果,属性含义如下:
android:fromDegrees——旋转开始的角度,比如0
android:toDegrees——旋转结束的角度,表如180
android:pivotX——旋转的轴点x坐标
android:pivoty——旋转的轴点y坐标
alpha标签表示透明度动画,对应AlphaAnimation,它可以改变View的透明度,它的属性含义如下:
android:fromAlpha——表示透明度的起始值,比如0.1
android:toAlpha——表示透明度的结束值,比如1