Android动画机制及特效实例(一)——Android群英传学
2019-03-25 本文已影响4人
辰_鱼

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

RotateAnimation(旋转动画):

TranslateAnimation(位移动画):

ScaleAnimation(缩放动画):

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

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

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


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

ValueAnimator:Object Animation 继承自ValueAnimator

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

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

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

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