插值器(Interpolator)和估值器(TypeEvaluator)是實現復雜動畫效果的關鍵,本文主要介紹插值器的使用和如何自定義插值器。
Android實現動畫效果中的壹個輔助接口
作用:設置 屬性值 從初始值過渡到結束值 的變化規律
適用於非線性運動動畫效果上
系統為我們默認實現了九個插值器分別為:
效果展示
動畫加速運行(默認效果)
效果
快速完成動畫,超出後再回到結束樣式
效果
先加速再減速
效果
先退後在加速前進
效果
先退後再加速前進,超出後在返回終點
效果
最後階段彈球效果
周期運動
效果
減速
勻速
效果
如果上述的插值器無法滿足妳的要求,妳也可以自定義插值器,這裏需要註意的是
下面是屬性動畫插值器的例子:
那麽系統的插值器是如何實現的呢,我們以先減速後加速的AccelerateDecelerateInterpolator為例看壹下系統的實現,源碼如下:
首先我們知道input在0-1間勻速增長,那麽(input + 1) * Math.PI的取值範圍為π到2π之間,而cos在π到2π之間是先負後正,取值範圍為-1到1之間,除以2後的取值範圍為-0.5到0.5之間而加上0.5的取值範圍為0,1(即0-100%),但在變化的過程中前壹半的變化越來越塊,後壹半的變化越來越慢,所以是壹個先加速後減速的過程。
對比著系統的AccelerateDecelerateInterpolator,我們寫壹個先減速後加速的AccelerateDecelerateInterpolator出來
效果
以上就是插值器的全部內容。