2012-04-18 11 views
11

Voy a rotar la imagen en Mi aplicación. Todo funciona bien con la rotación. Pero mientras termine la animación de rotación, la Imagen volverá a su posición anterior. Quiero permanecer esa imagen a ese estado girado y no volver a su estado real.Android: ¿Girar la animación vuelve a su estado real después de terminar la animación?

Entonces, ¿cómo hacerlo posible? para girar la imagen que estoy utilizando a continuación código:

<?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> 

y su aplicación a la ImgeView como:

myImageView.startAnimation(rotateRight); 

Por lo tanto, me ayuda con respecto a esto.

Respuesta

24

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

Dentro de la etiqueta <set, utilice

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

En general, la animación no altera las propiedades reales de la vista, sólo se anima. Si desea cambiar las propiedades reales, use AnimationListener y escuche en AnimationEnd y realice los cambios usted mismo.

+0

OK déjame intentarlo. –

+0

Creo que es su trabajo. –

+1

Este atributo no es necesario: android: fillEnabled = "true". Esto es necesario para este atributo: android: fillBefore. Mira esto: https://developer.android.com/reference/android/view/animation/Animation.html#attr_android:fillAfter. – Arash

2

En primer lugar obtener una instancia de animación utilizando

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

"R.anim.animation" se refiere a lo que su animación es.

poner un oyente de animación en esta animación usando.

anim.setAnimationListener 

que la vista visible en el método onAnimationCompleted() de AnimationListener.

Esto debería funcionar.

2

setFillAfter y setFillEnable es la respuesta que necesita.

Cuestiones relacionadas