我的 android 动画有问题。当我第一次单击我的 ImageView 时,我的图像有旋转,但是当我第二次单击我的 ImageView 时,旋转不起作用。为什么会这样?我在 Java 代码中的旋转方法:private boolean tomIsInvisible = false;public void eraseTom(View view) { ImageView tom = findViewById(R.id.tom); ImageView jerry = findViewById(R.id.jerry); if (tomIsInvisible) { tom.animate() .rotation(3600) .scaleX(1) .scaleY(1) .alpha(1) .setDuration(3000); jerry.animate() .rotation(3600) .scaleX(0) .scaleY(0) .alpha(0) .setDuration(3000); tomIsInvisible = false; } else if(!tomIsInvisible) { tom.animate() .rotation(3600) .scaleX(0) .scaleY(0) .alpha(0) .setDuration(3000); jerry.animate() .rotation(3600) .alpha(1) .scaleX(1) .scaleY(1) .setDuration(3000); tomIsInvisible = true; }}我的 ImageView 上的其他方法可以正常工作。
1 回答

月关宝盒
TA贡献1772条经验 获得超5个赞
当你第一次打电话时,它会从到rotation(3600)
动画。(默认视图旋转为)。在第一个动画之后(在为事物设置动画时更改属性的实际值)。因此,当您第二次调用您的视图时,您尝试将其动画化为. 这就是为什么没有视觉变化的原因。有rotationBy方法将指定值应用于视图旋转,尝试使用它。rotation
0
3600
0
rotation
3600
ViewPropertyAnimator
rotation(3600)
rotation
3600
3600
view.animate().rotationBy(3600)
另一种解决方案是从 0 到 360 设置动画,并在动画结束时将视图旋转重置为 0。
添加回答
举报
0/150
提交
取消