Android屬性動畫—Property Animation(三)

API概要

在android.animation包中能夠找大多數屬性動畫系統的API。因為視圖動畫系統已經在android.view.animation包中定義瞭很多插值,因此在屬性動畫系統中也能夠使用這些插值。下列表格中介紹瞭屬性動畫系統的主要組件。

Animator類提供瞭創建動畫的基本架構。通常不會直接使用這個類,因為它隻提供瞭基本功能,因此要完全的支持動畫值就必須擴展這個類,下表列出瞭Animator的子類。

表1.Animators


 說明
 
ValueAnimator
 用於計算處理動畫屬性值的主要屬性動畫時序引擎。它有所有的計算動畫值的核心功能,並包含瞭每個動畫的時序細節、動畫是否重復的信息、監聽接收更新事件和設置評估定制類型的能力。有兩類動畫屬性:1.計算動畫處理的值;2.把這些值設置到要進行動畫處理的對象和屬性上。ValueAnimator類不執行第二類屬性,因此必須通過ValueAnimator對象來監聽被計算值的變化,並且要自己修改想要的動畫對象的邏輯。更多的信息請看用ValueAnimator類來進行動畫處理。(https://developer.android.com/guide/topics/graphics/prop-animation.html#value-animator)
 
ObjectAnimator
 ValueAnimator類的一個子類,它允許給目標對象和對象屬性設置動畫。這個類在計算新的動畫值的時候,會更新屬性的坐標。大多數時候都會使用ObjectAnimator類,因為它使得動畫值的處理更加容易。但是,有些時候也會直接使用ValueAnimator類,因為ObjectAnimator類有更多的限制,如在目標對象上需要指定用於呈現的acessor方法。
 
AnimatorSet
 提供瞭一種把動畫組織到一起的機制,以便它們能夠彼此相互關聯的運行。你能夠設置動畫在一起播放、順序的播放、或者在指定的延時之後播放。更多的信息請看“用Animator Sets來編排多個動畫”
 

 

評價器會告訴屬性動畫系統如何計算給定屬性的值。它們利用Animator類提供時序數據:動畫的開始和結束值,以及基於這些數據計算得來的屬性動畫值。屬性動畫系統提供瞭下列評價器:

表2.Evaluators

Class/Interface
 說明
 
IntEvaluator
 默認的用於評價int類型屬性計算值的評價器
 
FlaoatEvaluator
 默認的用於評價float類型屬性計算值的評價器
 
ArgbEvaluator
 默認的用於評價顏色屬性計算值的評價器,顏色屬性值用十六進制表示。
 
TypeEvaluator
 允許創建自定義評價器的接口。如果要讓一個非int、float、顏色類型的屬性具有動畫效果,就必須實現這個TypeEvaluator接口,用它來指定如何計算對象屬性動畫值。如果想要處理有別於int、float和顏色類型默認行為的動畫,也能夠給它們指定一個自定義的TypeEvaluator。如何編寫自定義的評價器,請看“使用TypeEvaluator”
 

 

時間差值給動畫中的時間函數定義瞭一個用於計算的具體的值。例如,一個線性過渡的動畫,意味著整個動畫期間動畫都會均勻的移動,或者例如加速開始,減少結束的非線性動畫。表3介紹瞭被包含在android.view.animation包中差值。如果那裡沒有適合你需要的差值,你可以實現TimeInterpolator接口,創建自己的差值。如何編寫自定義差值的更多信息,請看“使用差值”。

表3.Interpolators

Class/Interface
 說明
 
AccelerateDecelerateInterpolator
 變化頻率在開始和結尾處慢,而在中間部分加速
 
AccelerateInterpolator
 變化頻率在開始慢,然後加速
 
AnticipateInterpolator
 先向後,然後向前拋出(拋物運動)
 
AnticipateOvershootInterpolator
 先向後,向前拋出並超過目標值,然後最終返回到目標值。
 
BounceInterpolator
 在結束時反彈
 
CycleInterpolator
 用指定的循環數,重復播放動畫
 
DecelerateInterpolator
 變化頻率是快出,然後減速
 
LinearInterpolator
 固定的變化頻率
 
OvershootInterpolator
 向前拋出,並超過目標值,然後再返回
 
TimeInterpolator
 實現自定義插值的一個接口
 

作者:FireOfStar

 

 

發佈留言