我正在这样使用ViewPropertyImator:

view.animate().alpha(to).setDuration(duration);

和ValueAnimator:
ValueAnimator anim = ValueAnimator.ofInt(0, width);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator valueAnimator) {
        viewGroup.setMinimumWidth((Integer) valueAnimator.getAnimatedValue());
    }
});
anim.setDuration(duration).start();

有时我想在动画完成之前取消它,但仍然立即应用剩余的步骤(就像动画已经完成一样)。有没有一个简单的方法来使用这些api来完成这项工作,或者我需要将动画人员包装到另一个类中并自己处理它?

最佳答案

有两种方法可以停止运行动画。

Animator.end()     // end the animation
Animator.cancel()  // cancel the animation

您可以使用end()方法或cancel()方法。在这两种情况下,动画都将停止,只能通过调用start()重新启动。
end()cancel()之间的区别是,在调用方法之后,动画对象将处于的状态。
调用cancel()时,动画将在其轨迹中停止,使动画对象处于中间状态。
调用end()方法时,动画将有效地快速转发到动画的最终状态。
所有对象在动画结束时的显示方式。
资料来源:http://cogitolearning.co.uk/?p=1482

10-07 16:38