2016-04-07 8 views
2

Ich versuche, ein Bild um 360 Grad mit AccelerateDecelerateInterpolator zu drehen. Ich habe den Code eingeschlossen, um das Bild in einer onclickfunktion einer Taste zu drehen. Wenn ich die Taste zum ersten Mal drücke, dreht sich das Bild. Wenn ich das nächste Mal drücke, passiert nichts.ImageView dreht sich nur einmal mit AccelerateDecelerateInterpolator

public void displaySpinResult_Spinner(View view) { 
     arrow.animate().rotation(360).setInterpolator(new AccelerateDecelerateInterpolator()).start(); 
} 

Antwort

0

Ich denke, das ist die Lösung:

public void displaySpinResult_Spinner(View view) { 
    arrow.animate().rotation(360).setInterpolator(new AccelerateDecelerateInterpolator()).start(); 
    arrow.animate().rotation(360).setInterpolator(new AccelerateDecelerateInterpolator()).reset(); 
} 
1

Dies ist wahrscheinlich, weil der Rotationswert beibehalten wird. Wenn Sie rotation(360) zum zweiten Mal angeben, ist die View bereits um 360 Grad gedreht, so dass nichts passiert.

Sie können entweder rotation(arrow.getRotation() + 360) versuchen oder stattdessen die Methode rotationBy() verwenden.

+0

Danke für die Antwort. Ich benutze jetzt rotateanimation Klasse und es funktioniert gut. – srkmish