java - 对象动画只会为对象设置一次动画
问题描述
一旦按钮 ( randomButton
) 被动画化了,它就不会再被动画化了——但是为什么呢?ObjectAnimator
每次调用它时如何强制动画?
Button randomButton = eliminate();
randomButton.setText("");
objectAnimator = ObjectAnimator.ofFloat(randomButton, "rotation", 180);
objectAnimator.setDuration(500);
objectAnimator.start();
解决方案
您需要第二个值才能重新激活对象。
objectAnimator = ObjectAnimator.ofFloat(randomButton, "rotation", 180);
这来自https://developer.android.com/reference/android/animation/ObjectAnimator,“单个值意味着该值是被动画化的值,在这种情况下,起始值将来自被动画化的属性以及第一次调用 start() 时的目标对象。两个值表示开始值和结束值。超过两个值表示开始值、沿途动画的值和结束值(这些值将被分配在整个动画期间均匀分布)。”
正确的代码是:
objectAnimator = ObjectAnimator.ofFloat(randomButton, "rotation", 0, 180);