进入android3.0(API 11)后,android的动画分为3种
1、Property Animation
2、View Animation
3、Drawable Animation
View Animation(Tween Animation):补间动画,给出两个关键的帧,通过一些算法将给定属性值在给定时间内的两个关键帧渐变。View Animation只能应用于View对象,而且只支持一部分属性如:alpha、scale、translate、rotate。而且View Aimation只改变View对象绘制的位置,没有改变View对象本身。例如一个按钮做平移,在移动过程中点击按钮是不会有点击事件的,只有点击按钮的原始区域才有点击事件。
Drawable Animation(Frame Animation):帧动画。通过一系列图片依次显示来达到动画效果。
上面两种动画都是3.0之前就已经引进的,而Property Animation 是3.0之后才引进的。他有几个特点:
1、Property Animation 表示的是一个值在一段时间内变化,可以描述任何对象的行为,而不仅是View对象
2、通过Property Animation作用view对象,可以改变view的实际属性,而不仅是绘画位置。这个可以在后面的源码分析中找到原因。
通过 Property Animation可以定义一个动画的以下特性:
Duration:动画的持续时间,默认值是300ms
Time interprolation:时间插值,定义随着时间的变化,属性值是如何变换的。
Repeat count and behavior:可以定义一个动画是否重复进行,重复次数,也可以指定动画倒着回放。
Animator sets:可以定义一组动画,它们一起播放或顺序播放,或者指定的延迟后播放
Frame refresh delay:指定多久刷新一个动画的帧, 默认为10ms
只要这个对象的属性有get/set方法,Property Animation 就能根据动画效果来改变他的值。3.0之后View引入的一些新的属性并设置的get/set方法:
1、translationX和translationY:这两个属性控制了view所处的位置,它们的值由layout容器设置,是相对于坐标原点(0,0左上角)的一个偏移量。
2、rotation、rotationX和rotationY:控制View绕着轴点(pivotX、pivotY)旋转。
3、scaleX和scaleY:控制View基于pivotX和pivotY的缩放。
4、pivotX和pivotY:旋转的轴点和缩放的基准点,默认是View的中心点。
5、x和y:描述了view在其父容器中的最终位置,是左上角坐标和偏移量(translationX,translationY)的和。
6、aplha:透明度,1是完全不透明,0是完全透明。
下一章将具体介绍propety Animation的使用。