Android 如何取消动画,但不结束它?

Android 如何取消动画,但不结束它?,android,android-animation,translate-animation,Android,Android Animation,Translate Animation,我班上有一个TranslateAnimation。动画将自动启动 我设置按钮,如果单击它,动画将被取消(animation.cancel();) 我还为我的班级设置了一个AnimationListener。如果动画结束,我将开始一个新的活动(您转到菜单) 我的应用程序依赖于用户必须在动画结束前单击按钮。 问题是animation.cancel()允许作为动画的结尾 如何以未计为动画结束的其他方式取消动画?可能吗 提前谢谢 animation.cancel()正在调用动画侦听器,调用方式为: 取消

我班上有一个
TranslateAnimation
。动画将自动启动

我设置按钮,如果单击它,动画将被取消(
animation.cancel();

我还为我的班级设置了一个AnimationListener。如果动画结束,我将开始一个新的活动(您转到菜单)

我的应用程序依赖于用户必须在动画结束前单击按钮。 问题是
animation.cancel()允许作为动画的结尾

如何以未计为动画结束的其他方式取消动画?可能吗

提前谢谢

animation.cancel()正在调用动画侦听器,调用方式为:

取消动画将调用动画侦听器(如果已设置),以 通知动画结束。如果手动取消动画, 在再次启动动画之前,必须调用reset()


如果您想在cancel()和onAnimationEnd()上有不同的行为,我建议使用一个布尔变量,可以在单击按钮时设置,onAnimationEnd会检查它是否为真。

一旦取消动画,您可以删除侦听器,从而防止调用
onAnimationEnd

@Override
public void onAnimationCancel(Animator animation) {
  animation.removeAllListeners();
}

下次链接到文档!好办法!但是,
animation.removeListener(此)
将阻止您删除可能要侦听cancel/animationEnd events.thaaaanks的其他侦听器。你救了我的命;)
@Override
public void onAnimationCancel(Animator animation) {
  animation.removeAllListeners();
}