我正在这样使用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