Android视图动画以及属性动画——Android群英传学习笔记

Android View动画框架

原理:每次绘制视图时View所在的View Group中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。

视图动画:

AlphaAnimation(透明度动画):

图 1

RotateAnimation(旋转动画):

图 2

TranslateAnimation(位移动画):

图 3

ScaleAnimation(缩放动画):

图 4

动画合集:通过AnimationSet将动画以组合形式展现

图 5

属性动画:

ObjectAnimator:创建一个ObjectAnimator只需通过其静态工厂类直接返回ObjectAnimator对象。

图 6

注意:在使用ObjectAnimator时,要操纵的属性必须具有get、set方法,否则ObjectAnimator无法起效。如果属性没有get、set方法,也可通过自定义一个属性类或者包装类来间接给属性增加get、set方法,使用时只需操纵包装类就可调用方法。

图 7
图 7-2

PropertyValuesHolder:与AnimationSet类似,同时作用多种动画

图 8

ValueAnimator:Object Animation 继承自ValueAnimator

图 9

使用方法:在ValueAnimator的AnimatorUpdateListener中监听数值的变换,从而完成动画的变换

图 10

动画事件的监听:一个完整动画具有Start、Repeat、End、Cancel四个过程

图 11

AnimatorSet:作用多种动画,同时实现更为精确的顺序控制

图 12

View的animate方法:直接驱动属性动画

图 13

这篇文章到这里就结束了,Android布局动画、自定义动画以及特效实例(灵活菜单、计时器动画)等将放在下篇文章继续学习!!! 

你可能感兴趣的:(Android视图动画以及属性动画——Android群英传学习笔记)