首先要了解為什麼需要插值器,因為在補間動畫中,我們一般只定義關鍵幀(首幀或尾幀),然後由系統自動生成中間幀,生成中間幀的這個過程可以成為「插值」。插值器定義了動畫變化的速率,提供不同的函式定義變化值相對於時間的變化規則,可以定義各種各樣的非線性變化函式,比如加速、減速等。下面是幾種常見的插值器:
[list]
[*]interpolator物件 資源id 功能作用
[*]acceleratedecelerateinterpolator @android:anim/accelerate_decelerate_interpolator 先加速再減速
[*]accelerateinterpolator @android:anim/accelerate_interpolator 加速
[*]anticipateinterpolator @android:anim/anticipate_interpolator 先回退一小步然後加速前進
[*]anticipateovershootinterpolator @android:anim/anticipate_overshoot_interpolator 在上乙個基礎上超出終點一小步再回到終點
[*]bounceinterpolator @android:anim/bounce_interpolator 最後階段彈球效果
[*]cycleinterpolator @android:anim/cycle_interpolator 週期運動
[*]decelerateinterpolator @android:anim/decelerate_interpolator 減速
[*]linearinterpolator @android:anim/linear_interpolator 勻速
[*]overshootinterpolator @android:anim/overshoot_interpolator 快速到達終點並超出一小步最後回到終點
[/list]
插值器使用法:
...個性化插值器:
如果系統提供的插值器不能滿足需要,可以通過修改插值器的屬性優化,比如修改anticipateinterpolator的加速速率,調整cycleinterpolator的迴圈次數等。
常見的插值器可調整的屬性:
無android:factor 浮點值,加速速率,預設為1
android:tension 浮點值,起始點後退的張力、拉力數,預設為2
android:tension 同上 android:extratension 浮點值,拉力的倍數,預設為1.5(2 * 1.5)
無android:cycles 整數值,迴圈的個數,預設為1
android:factor 浮點值,減速的速率,預設為1
無浮點值,超出終點後的張力、拉力,預設為2
使用修改插值器屬性法
在/res/anim下建立乙個xml檔案(以修改overshootinterpolator屬性為例)命名為my_overshoot_interpolator.xml
<?xml version="1.0" encoding="utf-8"?>
引用到自定義的插值器
自定義插值器
如果以上的修改系統插值器屬性仍無法滿足需要,可以自定義插值器。
Android動畫插入器
interpolator英文意思是 篡改者 分類機 校對機 sdk對interpolator的描述是 an interpolator defines the rate of change of an animation.this allows the basic animation effects ...
Android 瀏覽器外掛程式開發 外掛程式庫
2011 08 24 18 04 android瀏覽器外掛程式的核心是乙個動態庫,由c 寫成。這裡實現了npapi的介面。以browserplugin為例,分析如下 先看 jni main.cpp np initialize 初始化np p npn函式。對於每一種外掛程式來說,該函式只會被呼叫一次,...
Android動畫 View動畫
1 使用view,首先要建立xml檔案。res anim filename.xml 使用動畫 button button animation animation animationutils.loadanimation this,r.anim.filename button.startanimati...