使用ViewPropertyAnimator进行第一次运行后,Android Image无法旋转

时间:2019-02-09 01:17:45

标签: android android-activity android-animation android-imageview

  • 我在布局中设置了两个 ImageView ,一个位于另一个上方,例如A和B。
  • 我已将B的alpha设置为0,所以当我想通过在代码中将相应的alpha设置为1来控制显示哪个图像时,它完全消失了。
  • 现在,当我单击 ImageView(s)时,我还想将图像旋转360度,直到它们消失,以及新图像出现在屏幕上。
  • 我正在使用 ViewPropertyAnimator的 rotation()alpha()方法。
  • 此应用程序在首次安装并运行时没有任何问题。
  • 但是,下次我单击图像时,只有淡入和淡出动画起作用。
  • 旋转不起作用。
  • 检查此代码:

    boolean isImage1Showing = true;
    
    //onClick() method for the 2 ImageView(s)
    public void fadeAndRotate(View view){         
    
    if (isImage1Showing){
    
        //Rotate the resource on 1st ImageView by 360 degrees
        imageViewA.animate().rotation(360f).setDuration(2000);
    
        imageViewA.animate().alpha(0).setDuration(2000);
    
        //Displaying the other image on to the screen
        imageViewB.animate().alpha(1).setDuration(2000);
    
        isImage1Showing = false;
    
        } else {
        isImage1Showing = true;
    
        imageViewB.animate().rotation(360f).setDuration(2000);
    
        //Displaying the previous image 
        imageViewA.animate().alpha(1).setDuration(2000);
    
        //fading out the currently displayed image
        imageViewB.animate().alpha(0).setDuration(2000);
    }
    

    }

1 个答案:

答案 0 :(得分:0)

使用

.rotationBy(float value)

方法而不是

.rotation(float value)

方法。在您的情况下,它旋转 TO 360f,但是您希望它旋转 BY

因此此代码应该有效:

imageViewA.animate().rotationBy(360f).setDuration(2000);