插值器(Interpolator)
在之前的章節(jié)欲主,我們已經(jīng)對(duì)動(dòng)畫(huà)已經(jīng)有了一部分的了解了挥吵。那么這里我們要先講講插值器(Interpolator)裤唠。以加深我們對(duì)動(dòng)畫(huà)的理解砂客。
以下是給動(dòng)畫(huà)添加系統(tǒng)的插值器的資源id:
Interpolator class | Resource 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 |
而對(duì)于每個(gè)插值器的能夠帶來(lái)的效果:
Interploator class | decription |
---|---|
AccelerateDecelerateInterpolator | 開(kāi)始和結(jié)束緩慢泥张,中間加速 |
AccelerateInterpolator | 開(kāi)始的時(shí)候緩慢,之后開(kāi)始加速 |
AnticipateInterpolator | 開(kāi)始的時(shí)候向后甩一下鞭盟,然后向前 |
AnticipateOvershootInterpolator | 開(kāi)始的時(shí)候向后甩一下圾结,然后加速向前甩過(guò)終點(diǎn)一點(diǎn)后回到原點(diǎn) |
BounceInterpolator | 動(dòng)畫(huà)結(jié)束的時(shí)候小距離的時(shí)候在終點(diǎn)處彈起 |
CycleInterpolator | 將重復(fù)周期的指定數(shù)目的動(dòng)畫(huà)瑰剃。變化率遵循正弦模式齿诉。 |
DecelerateInterpolator | 開(kāi)始的時(shí)候快,結(jié)束的時(shí)候慢 |
LinearInterpolator | 以常量速率變化 |
OvershootInterpolator | 運(yùn)動(dòng)到終點(diǎn)后晌姚,沖過(guò)終點(diǎn)后再回彈 |
若是系統(tǒng)提供的插值器不能滿足你的業(yè)務(wù)需求粤剧,那么也是可以自己定義一部分屬性的:
<accelerateInterpolator>
android:factor Float型,加速度值(默認(rèn)是1)
<anticipateInterpolator>
android:tension Float型挥唠,張力的值(默認(rèn)是2)抵恋。可以理解為來(lái)回彈的幅度
<anticipateOvershootInterpolator>
android:tension Float型宝磨,張力的值(默認(rèn)是2)
android:extraTension Float型弧关,張力的倍數(shù)(默認(rèn)是1.5)
<cycleInterpolator>
android:cycles Integer型,周期的數(shù)目(默認(rèn)是1)
<decelerateInterpolator>
android:factor Float型唤锉,減速度(默認(rèn)是1)
<overshootInterpolator>
android:tension Float型世囊,張力的值(默認(rèn)是2)
通過(guò)xml實(shí)現(xiàn)的方式:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1500"
android:fromXDelta="0"
android:fromYDelta="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:toXDelta="300"
android:toYDelta="300"></translate>
通過(guò)java代碼實(shí)現(xiàn)的方式:
animation.setInterpolator(new AccelerateDecelerateInterpolator());
viewBtn.startAnimation(animation);
AccelerateDecelerateInterpolator
DecelerateInterpolator
AnticipateInterpolator
BounceInterpolator
LinearInterpolator
OvershootInterpolator
CycleInterpolator
AccelerateInterpolator
AnticipateOvershootInterpolator
以上就是視圖動(dòng)畫(huà)的學(xué)習(xí)總結(jié),總結(jié)出來(lái)可能有遺漏或者錯(cuò)誤窿祥,歡迎指正個(gè)人總結(jié)株憾。轉(zhuǎn)載請(qǐng)注明出處http://www.reibang.com/p/1b9cc1e658af