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的線程中。