Android动画机制及特效实例(一)——Android群英传学
2019-03-25 本文已影响4人
辰_鱼
Android View动画框架
原理:每次绘制视图时View所在的View Group中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧。
视图动画:
AlphaAnimation(透明度动画):
图 1RotateAnimation(旋转动画):
图 2TranslateAnimation(位移动画):
图 3ScaleAnimation(缩放动画):
图 4动画合集:通过AnimationSet将动画以组合形式展现
图 5属性动画:
ObjectAnimator:创建一个ObjectAnimator只需通过其静态工厂类直接返回ObjectAnimator对象。
图 6注意:在使用ObjectAnimator时,要操纵的属性必须具有get、set方法,否则ObjectAnimator无法起效。如果属性没有get、set方法,也可通过自定义一个属性类或者包装类来间接给属性增加get、set方法,使用时只需操纵包装类就可调用方法。
图 7
图 7-2PropertyValuesHolder:与AnimationSet类似,同时作用多种动画
图 8ValueAnimator:Object Animation 继承自ValueAnimator
图 9使用方法:在ValueAnimator的AnimatorUpdateListener中监听数值的变换,从而完成动画的变换
图 10动画事件的监听:一个完整动画具有Start、Repeat、End、Cancel四个过程
图 11AnimatorSet:作用多种动画,同时实现更为精确的顺序控制
图 12View的animate方法:直接驱动属性动画
图 13