我班上有一个TranslateAnimation
。动画自动开始。
我设置按钮,如果单击它,动画将被取消(animation.cancel();
)。
我还为我的班级设置了一个AnimationListener。如果我的动画结束,我将开始一个新的活动(你去菜单)。
public void onAnimationEnd(Animation animation) {
startActivity(new Intent(Class.this, Class2.class));
}
我的应用程序依赖于用户必须在动画结束前单击按钮。
问题是animation.cancel();
被认为是动画的结束。
如何以不计入动画结尾的其他方式取消动画?这可能吗?
提前致谢!
答案 0 :(得分:23)
取消动画后,您可以删除侦听器,从而阻止调用onAnimationEnd
:
@Override
public void onAnimationCancel(Animator animation) {
animation.removeAllListeners();
}
答案 1 :(得分:3)
animation.cancel()将动画侦听器调用为API documentation describes:
取消动画会调用动画侦听器(如果已设置) 通知动画结束。如果手动取消动画, 你必须在再次开始动画之前调用reset()。
如果你想在cancel()和onAnimationEnd()上有不同的行为,我会建议一个布尔变量,可以在按钮点击时设置,onanimationend检查它是否为真。