2012-04-18 2 views
11

Ho intenzione di ruotare l'immagine nella mia app. Tutto funziona bene con la rotazione. Mentre l'animazione di rotazione termina, l'immagine torna alla posizione precedente. Voglio che rimanga quell'immagine a quello stato ruotato e non per riportarlo al suo stato reale.Android: la rotazione dell'animazione torna al suo stato reale al termine dell'animazione?

Quindi, come renderlo possibile? per ruotare l'immagine Sto usando il codice qui sotto:

<?xml version="1.0" encoding="utf-8"?> 

<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:fromDegrees="0" 
    android:toDegrees="30" 
    android:duration="2000"> 

</rotate> 

e la sua applicazione alla ImgeView come:

myImageView.startAnimation(rotateRight); 

Quindi, mi aiuto per quanto riguarda questo.

risposta

24

Vedi How can I animate a view in Android and have it stay in the new position/size?

all'interno del tag <set, utilizzare

android:fillAfter="true" 
android:fillEnabled="true" 

In generale, Animazione non altera le proprietà reali della vista, si anima solo. Se si desidera modificare le proprietà effettive, utilizzare AnimationListener e ascoltare onAnimationEnd e apportare le modifiche da soli.

+0

OK fammi provare. –

+0

Penso che il suo lavoro. –

+1

Questo attributo non è necessario: android: fillEnabled = "true". Questo è richiesto per questo attributo: android: fillBefore. Guarda questo: https://developer.android.com/reference/android/view/animation/Animation.html#attr_android:fillAfter. – Arash

2

in primo luogo ottenere un esempio di animazione usando

Animation anim = AnimationUtils.loadAnimation(context, R.anim.animation); 

"R.anim.animation" si riferisce a tutto ciò che l'animazione è.

inserisce un listener di animazione su questa animazione utilizzando.

anim.setAnimationListener 

Fai la vista visibile nel metodo onAnimationCompleted() di AnimationListener.

Questo dovrebbe funzionare.

2

setFillAfter e setFillEnable è la risposta che ti serve.