本文介紹了如何在Android中創(chuàng)建自定義插值器來應(yīng)用翻譯動畫的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我要創(chuàng)建自定義插補以應(yīng)用平移動畫,其中動畫應(yīng)經(jīng)過以下函數(shù):
public static float easeIn(float t,float b , float c, float d) {
return c*(t/=d)*t + b;
}
其中:
t: current time
b: start value
c: change in value
d: duration
我找到了一個實現(xiàn)縮放動畫的方法,如果只帶一個參數(shù):
import android.view.animation.Interpolator;
public class MyInterpolator implements Interpolator {
public MyInterpolator() {
}
public float getInterpolation(float t) {
float x = 2.0f * t - 1.0f;
return 0.5f * (x * x * x + 1.0f);
}
}
如何使用上面的函數(shù)Create In Interpolate進行翻譯。
推薦答案
簡答:從名字看,我猜你的easyIn應(yīng)該是一個加速插值器
您編寫的函數(shù)不是插值器所能做的。插值器不關(guān)心它是Scale動畫、Alpha動畫還是TranslateAnimation。
文檔對Interpolator getInterpolation的解釋如下:
介于0和1.0之間的值,表示動畫中的當前點,其中0表示開始,1.0表示結(jié)束
插補器提供了從(相對)經(jīng)過的時間映射到動畫進度的功能。您可以想象它的單位為%,getInterpolation(Xy)將告訴您
“如果通過總時長的XY%,則應(yīng)通過總動畫的多少%?”
以LinearInterpolator為例。實現(xiàn)如下所示:
public float getInterpolation(float t) {
return t
}
示例:使用LinearInterpolator設(shè)置從0px到200px的動畫:
經(jīng)過45%(0.45)的時間后,應(yīng)通過45%(回報0.45)的動畫,即90px(200px*0.45)
有關(guān)詳細信息,請閱讀以下內(nèi)容:
Android Animations Tutorial 5: More on Interpolators
這篇關(guān)于如何在Android中創(chuàng)建自定義插值器來應(yīng)用翻譯動畫的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,