簡體   English   中英

動畫期間Android動畫插值器的更改

[英]Android Animation Interpolator Change During Animation

我想要做的是例如使用線性插值器在視圖上加載一個動畫。 然后,當我的應用程序中發生某個事件時,將插值器更改為減速插值器。 因此,效果將是一個恆定的動畫,直到事件發生為止,然后動畫將減速至停止。 這有可能實現嗎? 我想知道我將如何實現這一目標,並且會喜歡某個方向。 謝謝!

是。 您將為動畫創建自定義插值器。 它包含您想要的其他插值器。 事件發生時,只需在插補器中觸發它,然后讓插補器將一個插補器交換為另一個插補器即可。

public class CompositeInterpolator implements TimeInterpolator {
    LinearInterpolator mLinear;
    DecelerateInterpolator mDecelerate;

    boolean mUseLinear = false;

    public CompositeInterpolator() {
       mLinear = new LinearInterpolator();
       mDecelerate = new DecelerateInterpolator();
    }

    public void useLinear(boolean use) {
        mUseLinear = use;
    }

    @Override
    public float getInterpolation(float input) {
        if (mUseLinear) {
           return mLinear.getInterpolation(input);
        } else {
           return mDecelerate.getInterpolation(input);
        }
    }
}

然后,當您要交換時,只需調用useLinear(false)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM