ApiDemos-- PropertyAnimation

来源:互联网 发布:新浪集团网络运营 编辑:程序博客网 时间:2024/06/06 01:31

API指南--PropertyAnimation

 

Android系统中的动画分3种情况:

1)属性动画(Property Animation)

它作用于任何对象的属性。不仅仅局限于View对象,还包括Activity, Fragment等。当然还有你自定义的对象都可以。

 

2)View动画

顾名思义,此类动画只能作用于View对象,与属性动画相比,适用范围较窄。

 

3)Drawable动画

这个很简单,就是把几张图片放在一起按顺序播放,就像放电影那样。

 

 

1.       属性动画

 

属性动画作用于对象,只要该对象有对应的属性即可。你可以定义以下几个动画特征值:

 

时长:动画时长,默认300毫秒(ms)。

时间插值:根据当前时间值来计算当前属性值在整个变化过程中的百分比位置。

反复次数和行为:动画是否反复播放,是从头反复还是反方向反复。

动画控制器:计算属性值。

帧刷新率:多长时间刷新一次屏幕,默认时间是10ms一次,但是最终情况实际上取决于系统繁忙程度,如果很繁忙,你的动画一定不流畅,即所谓卡的情况,因为有些帧没有刷,即失帧。

 

因此,个人认为,如果你要做一个属性动画,那么你需要的步骤就是:

1)  选定对象(Object)+属性(Property):简称 O + P;

2)  时长(Duration):简称D;

3)  时间插值(Time interpolation):简称T;

4)  反复次数(Repeat Count)和行为(Behavior):简称R&B;

5)  动画控制器(Animator):简称A;

6)  帧刷新率(Frame refresh delay):简称F;

 

属性动画如何工作

 

先看下面一个正方体对象的动画示意图:

 

                            图1 正方体匀速运动

 

为了了解上图的动画行为,那么就对应分析属性动画的相关值就OK了。

1)      O = 正方体;P = X坐标值;

2)      D =40ms;

3)      T = time/40ms= 0.025*time;

time = 10, T = 0.025 * 10 = 0.25,即当前属性值X = (最终位置-开始位置)*0.25 = (40 - 0) * 0.25 = 10;

time = 20,T = 0.025 * 20 = 0.5,所以X = (40-0)*0.5 = 20;

4)      R&B= 0;无反复;

5)      F = 10ms;

 

通过上面的一些值的分析,相信大家应该很明白了吧。

 

再看下面图2,这是一个先加速后减速的运动图:



图2 正方体先加速后减速运动

 

请读者自行分析吧。

 


0 0
原创粉丝点击