进入android3.0(API 11)后,android的动画分为3种android
一、Property Animation
算法
二、View Animation源码分析
三、Drawable Animation动画
View Animation(Tween Animation):补间动画,给出两个关键的帧,经过一些算法将给定属性值在给定时间内的两个关键帧渐变。View Animation只能应用于View对象,并且只支持一部分属性如:alpha、scale、translate、rotate。并且View Aimation只改变View对象绘制的位置,没有改变View对象自己。例如一个按钮作平移,在移动过程当中点击按钮是不会有点击事件的,只有点击按钮的原始区域才有点击事件。spa
Drawable Animation(Frame Animation):帧动画。经过一系列图片依次显示来达到动画效果。
对象
上面两种动画都是3.0以前就已经引进的,而Property Animation 是3.0以后才引进的。他有几个特色:
事件
一、Property Animation 表示的是一个值在一段时间内变化,能够描述任何对象的行为,而不只是View对象图片
二、经过Property Animation做用view对象,能够改变view的实际属性,而不只是绘画位置。这个能够在后面的源码分析中找到缘由。get
经过 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方法:
一、translationX和translationY:这两个属性控制了view所处的位置,它们的值由layout容器设置,是相对于坐标原点(0,0左上角)的一个偏移量。
二、rotation、rotationX和rotationY:控制View绕着轴点(pivotX、pivotY)旋转。
三、scaleX和scaleY:控制View基于pivotX和pivotY的缩放。
四、pivotX和pivotY:旋转的轴点和缩放的基准点,默认是View的中心点。
五、x和y:描述了view在其父容器中的最终位置,是左上角坐标和偏移量(translationX,translationY)的和。
六、aplha:透明度,1是彻底不透明,0是彻底透明。
下一章将具体介绍propety Animation的使用。