Android动画能够分为三种:View动画,帧动画和属性动画;属性动画为API11的新特性,在低版本是没法直接使用属性动画的。android
本章主要学习内容:算法
1.View动画以及自定义View动画app
2.View动画的一些特殊使用场景ide
3.对属性动画作了一个全面的介绍oop
4.使用动画的一些注意事项学习
AnimatorSet、ObjectAnimator、TimeAnimator、ValueAnimator动画
1.属性动画能够对任意对象的属性进行动画而不只仅是View,动画默认间隔300ms,默认帧率10ms/帧。在一个时间间隔内完成对象从一个属性值到另外一个属性值的改变。lua
2.android:propertyName表示属性动画的做用的属性的名称。*线程
android:duration表示动画的时长orm
android:valueFrom表示动画的起始值
android:valueTo表示属性的结束值
android:startOffset表示动画的延迟时间,当动画开始后,须要延迟多少毫秒才会真正播放次动画。
android:repeatCount表示动画的重复次数(默认为0,其中-1表示无限循环)
android:repeatMode表示动画的重复模式(repeat和reverse可选,表示连续重复和逆向重复)
android:valueType表示android:propertyName所指定的属性的类型,可选intType/floatType。若是android:propertyName指定的属性表示颜色,则不须要指定该属性。
1.时间差值器(TimeInterpolator)的做用是根据时间流逝的百分比来计算出当前属性值改变的百分比,系统预置的有LinearIn特rpolator(线性插值器:匀速动画),AcceletateDecelerateInterpolator(加速减速差值器:动画两头慢中奖快),DecelerateInterpolator(减速差值器:动画愈来愈慢)
2.估值器(TypeEvaluator)的做用是根据当前属性改变的百分比来计算改变后属性值。系统预置有IntEvaluator,FloatEvaluator,ArabEvaluator
3.差值器和估值器除了系统提供以外,咱们还能够自定义。自定义差值器须要实现Interpolator或者TimeInterpolator;自定义估值器算法须要实现TypeEvaluator
1.属性动画要求做用的对象提供该属性的get和set方法,缺一不可
2.若是你的对象没有对应的get和set方法
请给你的对象加上get和set方法,若是你有权限的haul(若是直接使用系统的类,是没法加上的)
用一个类来包装原始对象,简介为期提供get和set方法
采用ValueAnimator,监听动画过程,本身实现属性的改变
经过反射调用get/set方法;属性动画须要运行在有Looper的线程中。