因此,我使用 ValueAnimator 将简笔画的四肢从一个位置移动到另一个位置,无限循环,或者至少直到动画停止。我的问题是,当动画师重复时,我会有轻微的停顿,好像动画落后了,但只有在动画重复时才会发生。我有其他动画只发生一次,并且运行得非常顺利,而且它们每次的计算量都一样多,所以我目前认为这是 ValueAnimator 的问题。
在过去,我能够找到其他人抱怨这个问题,但我无法找到任何找到解决方案的人。你们知道这是否是 Android ValueAnimator 的真正问题吗?如果是这样,您知道任何解决方案吗?如果没有,你们有什么想法,为什么这会发生在我动画中的那个地方?我真的坚持这个。
我的 ValueAnimator 设置代码是这样的:
mFigureAnimator = ValueAnimator.ofFloat(0f, 1f);
mFigureAnimator.setInterpolator(new LinearInterpolator());
mFigureAnimator.setDuration(1000);
mFigureAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Float delta = (Float)animation.getAnimatedValue();
// Set the drawn locations based on the animated time and the start/end
invalidate();
}
});
mFigureAnimator.setRepeatCount(ValueAnimator.INFINITE);
mFigureAnimator.setRepeatMode(ValueAnimator.RESTART);
mFigureAnimator.start();