带有一些 ImageViews 的动画包

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


慕码人8056858
浏览 116回答 1
1回答

月关宝盒

当你第一次打电话时,它会从到rotation(3600)动画。(默认视图旋转为)。在第一个动画之后(在为事物设置动画时更改属性的实际值)。因此,当您第二次调用您的视图时,您尝试将其动画化为. 这就是为什么没有视觉变化的原因。有rotationBy方法将指定值应用于视图旋转,尝试使用它。rotation036000rotation3600ViewPropertyAnimatorrotation(3600)rotation36003600view.animate().rotationBy(3600)另一种解决方案是从 0 到 360 设置动画,并在动画结束时将视图旋转重置为 0。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java