gpt4 book ai didi

java - 带有一些 ImageView 的动画包

转载 作者:行者123 更新时间:2023-12-02 05:06:12 25 4
gpt4 key购买 nike

我的 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 上的其他方法工作正常。

最佳答案

当您第一次调用 rotation(3600) 时,它会将 rotation0 动画到 3600。 (默认 View 旋转为0)。第一个动画之后,rotation3600(ViewPropertyAnimator 在对事物进行动画处理时更改属性的实际值)。因此,当您第二次调用 rotation(3600) 时,您的 View 的 rotation 已经是 3600 并且您尝试将其动画设置为 3600。这就是为什么没有视觉变化。有rotationBy将指定值应用于 View 旋转的方法,请尝试使用它。

view.animate().rotationBy(3600)

另一个解决方案是从 0 到 360 进行动画处理,并在动画结束时将 View 旋转重置为 0。

关于java - 带有一些 ImageView 的动画包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56349274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com