Android AccelerateDecelerateInterpolator 不工作

Android AccelerateDecelerateInterpolator not working

AnimatorSet set = new AnimatorSet();
set.playTogether(
        ObjectAnimator.ofFloat(mCard, "scaleX", 1f, 0f),
        ObjectAnimator.ofFloat(mCard, "scaleY", 1f, 0f),
        ObjectAnimator.ofFloat(mBackground, "alpha", 1f, 0f)
);

set.setDuration(2000l);
set.setInterpolator(new AccelerateDecelerateInterpolator()); //this isn't working

set.addListener(new AnimatorListenerAdapter() {

    @Override
    public void onAnimationEnd(Animator animation) {
        super.onAnimationEnd(animation);

        //Stuff here
    }

});

set.start();

这对我来说似乎很简单,我过去使用过插值器并且没有遇到过麻烦。但是,对于这个 AnimatorSet,如果我注释掉 setInterpolator 行,动画看起来完全一样。如您所见,我放慢了它的速度,这样我就可以确保我不是没有注意到效果,而是它绝对没有发生。

我做错了什么?

我相信默认动画是 AccelerateDecelerateInterpolator。查看 Animate 的 Android 源代码,构造函数这样做:

public Animation() {
    ensureInterpolator();
}

protected void ensureInterpolator() {
    if (mInterpolator == null) {
        mInterpolator = new AccelerateDecelerateInterpolator();
    }
}

尝试使用不同的插值器以确保其正常工作。