2011-09-27 14 views
16

tengo 3 vista de la imagen en la que empecé misma animación (traducir)¿Cómo obtener el objeto View en el que se inició la animación ......?

tengo oyente animación, en onAnimationEnd (animación Animación) método,

Quiero saber en qué imagen ver la animación se terminó. .?

Desde el objeto de animación, ¿cómo puedo saber en qué se inició?

Gracias de antemano ..!

+0

trate de mantener una bandera en onAnimationEnd() – aNi

+0

No he tenido usted. .! – Noby

Respuesta

31

Bueno, no puede saber cuál es el objeto sobre el que terminó la animación. El propósito de AnimationListener es escuchar la animación y no el objeto.

Solución


1- crear su propia clase de Animación y guardar en ella una referencia al objeto que está animando.

Esto le permitirá lanzar la animación a YourAnimation en la función onAnimationEnd y obtener la referencia.


2- Una solución más simple es crear su propia AnimationListener que contiene una referencia del objeto que está animado.

Por ejemplo:

public class MyAnimationListener implements AnimationListener { 
    ImageView view; 
    public void setImage(ImageView view) { 
     this.view = view; 
    } 
    public void onAnimationEnd(Animation animation) { 
     // Do whatever you want 
    } 
    public void onAnimationRepeat(Animation animation) { 
    } 
    public void onAnimationStart(Animation animation) { 
    } 
} 

Así que cuando se desea animar su ImageView: Usted hace lo siguiente:

MyAnimationListener listener = new MyAnimationListener(); 
listener.setImage(myImage); 

myAnimation.setAnimationListener(listener); 
+0

mejor solución ... –

+0

@ W.K.S hey! ¿Podrías, por favor, explicar un poco más al respecto? :) – Slava

+0

@Slava, mi comentario era incorrecto, en realidad. Esta respuesta es buena :) –

Cuestiones relacionadas