已下内容仅仅是学习笔记:
1、属性动画是如何工作的呢?
a.线性动画
40ms移动了40pixels,默认没10ms刷新一次,移动10个pixels,40ms结束之后动画结束。
b.非线性动画
上面展示了一个对象在开始的时候加速,在结束的时候减速的一个动画。
那么它到底是如何工作的呢?
ValueAnimator对象会保留动画运行的时机,比如说动画已经运行了多长时间,运行到现在时,当前的属性值是多少。ValueAnimator封装了一个TimeInterpolator(它定义了动画的篡改)和一个TypeEvaluator(它定义了在动画的时候如何去计算属性的值)。
How Property Animation Differs from View Animation
1、view动画
view动画只能给view对象设置动画,如果我们想要给不是view的对象来设置动画,就必须自己写代码来实现,view动画还有一些额外的缺陷,它只能改view对象的某些方面摄者动画,例如缩放,旋转等背景色就不行。
另一个比较重要的view动画的缺点:Another disadvantage of the view animation system is that it only modified where the View was drawn, and not the actual View itself,就是说,他是假动画,他只是改变了该view对象的显示位置,并没有改变该view对象本身。 For instance, if you animated a button to move across the screen, the button draws correctly, but the actual location where you can click the button does not change, so you have to implement your own logic to handle this.(这段英文描述的很详细)。
2、属性动画
属性动画完全没有上面的限制,不管是view对象还是非view对象,你都可以给它设置属性动画而且该对象在动画之后的位置确实是改变了,you assign animators to the properties that you want to animate, such as color, position, or size and can define aspects of the animation such as interpolation and synchronization of multiple animators.
然而view动画使用起来更简单一些。
属性动画的具体使用,以及动画的监听,如何给viewgroup运用属性动画详见 Android开发文档。