天天看点

Property Animation要点总结

1. 你可以在任何空间上使用这个动画来改变这些控件的属性值,比如长和宽等内容,而不用管这个动画所绑定的控件是通过xml定义的还是通过自己draw的控件

2. 为了定义空间的动画,你必须知道空间的属性值,以及你需要自己设定这些动画的有效时间等内容,默认的动画间隔是300ms

3.Time interpolation这个值表示的是how the values for the property are calculated as a function of the animation's current elapsed time.

4. 你可以通过设定一些东西来实现重复次数和动画行为

5. 工作原理:

Property Animation要点总结

            上图是平稳动画,每个图的间隔时间都是10ms,比如我的宽度是每10ms增加10px,但是在这动画里面还可以设定不同的增加模式,比如下图的

Property Animation要点总结

     这个就是不规则的增加了,这个就和我们上面谈到的Time interpolation有重要的联系了,至于为什么下面我们会说到

    为了了解这个动画,我们首先要知道

ValueAnimator

这个的对象,这个对象的作用如下:

   (1)跟踪监测你这个动画运行了多久,以及将监听的东西提交给一个接口,就是updateListener这个接口

   (2)其中的一个属性

TimeInterpolator

定义了每时每刻被绑定空间的动画是怎么样的,以及控件目前动画的状态是怎么养的,比如我现在的宽度是40dp,还有就是我这个动    画的下一刻的规则是怎样的,这和它本身的一些方法是有关的,具体的东西还是需要大家仔细读文档的

     比如,我们的第二个图就是有

TimeInterpolator

中的

AccelerateDecelerateInterpolator

TypeEvaluator

控制的,流程是这样的,首先我们绑定动画(绑定这个词不知道合不合适),然后计算这个时间根据

AccelerateDecelerateInterpolator

计算出时间因子,然后通过调用

TypeEvaluator

中的IntEvaluator(This evaluator can be used to perform type interpolation between

int

values.)进而实现这个动画效果的。

6.流程

(1)首先实例化

ValueAnimator

对象,然后给出你想在某个时间间隔内某个属性值的变化范围,比如开始是多少,结束是多少,然后调用

start()

方法来确定动画的开始

(2)

ValueAnimator

这个对象同时会将百分比时间,记录多长时间和剩余多长时间

(未完待续)