动画期间Android动画插值器的变化

时间:2015-03-12 18:50:24

标签: android animation

我要做的是在一个带有线性插值器的视图上加载一个动画。然后,当我的应用程序中发生某个事件时,将插补器更改为减速插补器。因此效果将是一个持续的动画,直到事件发生,然后动画将减速停止。这有可能实现吗?我想知道我将如何实现这一点,并希望有一些方向。 谢谢!

1 个答案:

答案 0 :(得分:2)

是。您将为动画创建自定义插值器。它包含您想要的其他插补器。当事件发生时,只需在插补器中触发它,让插补器为另一个插入器插入一个插补器。

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)