2012-08-28 7 views
10

Duplicar posible:
Android: Animation Position Resets After CompleteImageView se restablecerá al estado original después de la rotación?

estoy usando RotateAnimation para girar un ImageView. El código es simple:

this.button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Animation ani = new RotateAnimation(
       0, /* from degree*/ 
       30, /* to degree */ 
       Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
     ani.setDuration(1000); 
     imageView.startAnimation(ani); 
    } 
}); 

Puedes ver que quiero que la imageView gire 30 grados.

Funciona, pero cuando se hace girar, la imagen vuelve al estado original, la misma posición y grado antes de girar. Quiero arreglar ImageView en la última posición de animación, es decir, quiero arreglar la imagen inclinada en 30 grados. ¿Cómo solucionarlo?

Respuesta

18

acabo de encontrar una solución:

ani.setFillAfter(true); 

Funciona :)

0

Es la manera normal cuando utiliza animación en Android.

Puede:

  • iniciar una nueva animación sin duración y repetir la propiedad de "infinito", y que giran a su imagen en el interior
  • Poner el valor de rotación manualmente al final de la animación (pero no puedes hacer eso sin una animación específica debajo de Android 3.0 si no estoy equivocado).
Cuestiones relacionadas