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

ValueAnimator does not reach maximum value when using reverse mode

我正在尝试为从 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 的值吗?如果不是,是否有任何方法可以实现该行为?

编辑 当达到目标值时,我试图做一些事情。我现在使用动画侦听器来这样做。但我仍然保留这个问题以更好地理解动画师的行为。

第一件事 - Animator 框架旨在为 UI 组件设置动画。因此,如果用户的眼睛无论如何都看不到,那么为范围内的每个可能值设置动画就没有多大意义。重复动画的边界与范围内的任何值都没有不同 - 如果您在下一帧上看不到 100 的值,那么 Animator 穿过它有什么意义?

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