2017-05-03 6 views
0

Ich habe das Problem, dass meine Animation nicht zum zweiten Mal auf Knopfdruck anwenden wird. Ich habe this library.Ich möchte die Rotation des Bildes mit Animation. aber Problem ist, dass es nur einmal funktioniert.Animation nicht zum zweiten Mal auf Knopfdruck anwenden

hier ist mein Code auf die Schaltfläche klicken

btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       ViewAnimator.animate(imageView) 
         .rotation(rotationAngle).duration(1000) 
         .repeatMode(ValueAnimator.RESTART) 
         .start(); 
       if(rotationAngle==360) 
       { 
        rotationAngle=180; 
       } 
       else 
       { 
        rotationAngle += 180; 
       } 
      } 
     }); 
+0

der Link nicht bieten hilft mehr arbeiten –

+0

was ist der Anfangswert für Sie Rotation Variable setzen? –

+0

180 @AbdulWaheed –

Antwort

1

Verwenden Sie den folgenden Code, der funktioniert prima und ich habe auch

public class MainActivity extends AppCompatActivity { 

private int rotationAngle = 180; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final TextView tv = (TextView) findViewById(R.id.tv_testing); 

    findViewById(R.id.btn_click).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      ViewAnimator.animate(tv) 
        .rotation(rotationAngle).duration(1000) 
        .repeatMode(ValueAnimator.RESTART) 
        .start(); 

      if(rotationAngle==360) 
      { 
       rotationAngle=180; 
      } 
      else 
      { 
       rotationAngle += 180; 
      } 
     } 
    }); 
} 
getestet

}

Hoffnung, dass Sie zu

+0

Vielen Dank, dass es funktioniert. –

+0

Ich bin froh, dass das für dich arbeitet. Glückliche Kodierung –

0

ich diesen Code testen und so scheint es richtig funktioniert. Wenn Sie immer Bild Drehen wollen bei dem Uhrzeigersinn versucht nächsten: Init Standardwert Rotation

private float rotationAngle=179.99f; 

.99f - weil 360 Grad 0 Grad ist und Sie brauchen etwas weniger für eine Drehung in gleicher Richtung

Dann setzen OnClickListener :

btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       ViewAnimator.animate(imageView) 
         .rotation(rotationAngle).duration(1000) 
         .repeatMode(ValueAnimator.RESTART) 
         .start(); 
       if(rotationAngle>=360) 
       { 
        rotationAngle=179.99f; 
       } 
       else 
       { 
        rotationAngle += 180; 
       } 
      } 
     }); 
Verwandte Themen