Tengo un ImageView en la que he aplicado un girar de animación. Ya quiero que la rotación seguir continuamente, me dio la repeatCount como infinito en mi rotate.xml:

android:repeatCount="infinite"

En onCreate(), me carga la animación y el inicio de la misma.

Animation myAnim    = AnimationUtils.loadAnimation(this, R.anim.rotate);
objectImg.startAnimation(myAnim); 

Cuando se presiona un botón, la rotación debe parar. Por lo tanto, en mi onClick(), que se llama clearAnimation().

objectImg.startAnimation(myAnim); 

Mi pregunta es si detener la animación es la cosa correcta de hacer.
Supongo clearAnimation() corresponde a loadAnimation(), pero no hay stopAnimation() que corresponde a startAnimation().

InformationsquelleAutor kiki | 2010-10-12

3 Comentarios

  1. 35

    También puede llamar a anim.cancel(); pero también debe llamar a anim.reset(); inmediatamente después de ella.
    Entonces, cuando usted quiere empezar de nuevo, simplemente llame a startAnimation en la vista.

    • ok, voy a revisar esto así.
    • la animación.cancel(); requiere de la API de nivel 8, para detener la animación en la API de 7 y superior, la única opción es la vista.clearAnimation();
    • cancel() acaba de reiniciar toda la animación a estado inicial. Pero, ¿cómo mantener el último estado detenido?
    • La prueba de la necesidad de llamar por teléfono anim.cancelar() y anim.reset() juntos. developer.android.com/reference/android/view/animation/…
  2. 62

    Uso clearAnimation() para detener una animación. No hay loadAnimation() en View.

    • Ok, gracias. Tan sólo startAnimation() y clearAnimation() son pplicable a las vistas.
    • clearAnimation() no funciona para mí, setAnimation(null) ¿
    • Hola @CommonsWare u puede decirme cómo detener la animación onClick de la vista de la misma, que es la animación, pero no como un botón separado?
    • img.clearAnimation() es la mejor solución – img.setAnimation(null) también funciona, pero es menos elegante – img.startAnimation(null) causas de accidente
    • Yo tenía un infinito de animación en un imageView de zoom in/zoom out. Cuando yo estaba tratando de detener la animación después de hacer clic en la vista, ni anim.cancelar() ni img.clearAnimation() que funciona para mí. Finalmente img.setAnimation(null) trabajó para mí.

Dejar respuesta

Please enter your comment!
Please enter your name here