使用反向模式时,ValueAnimator未达到最大值

时间:2015-07-30 09:18:48

标签: android android-animation

我正在尝试将值设置为0到100,然后再回到0.所以我认为ValueAnimator是最好的。 我这样做是

ValueAnimato animator = ValueAnimator.ofInt(0, 100);
animator.setInterpolator(INTERPOLATOR);
animator.setRepeatMode(ValueAnimator.REVERSE);
animator.setRepeatCount(ValueAnimator.INFINITE);
animator.addUpdateListener(listener);

INTEPOLATOR是一个LinearInterpolator,而lister只记录该值。 从日志中我看到它从0变为接近100的范围而不是逆转。它达到100几次。 我的问题是,它不应该总是达到100的值。如果没有,有没有办法得到这种行为?

修改 当达到目标值时,我试图做某事。我现在用动画监听器这样做了。但是我仍然可以更好地理解动画师的行为。

1 个答案:

答案 0 :(得分:1)

首先,Animator框架旨在为UI组件设置动画。因此,如果用户的眼睛无论如何都无法捕获它,那么为范围内的每个可能值设置动画都没有多大意义。重复动画的边界与范围内的任何值都没有区别 - 如果您在下一帧中看不到100的值,那么Animator通过它的重点是什么?

那么,你应该怎么做?不要将任何业务逻辑附加到动画侦听器,尤其是因为您的动画是可重复的。请注意,某些用户可能会在其设备上禁用动画(通过开发人员设置)。