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
。查看的Android源代码Animate
,构造函数执行以下操作:
public Animation() {
ensureInterpolator();
}
protected void ensureInterpolator() {
if (mInterpolator == null) {
mInterpolator = new AccelerateDecelerateInterpolator();
}
}
尝试使用其他插值器以确保其正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句