2011-09-27 5 views
16

mam 3 zdjęcie Zobacz, w którym zacząłem samą animację (tłumacz)Jak uzyskać widok obiektu, na którym rozpoczęto animację ......?

Mam animacji słuchacza, w onAnimationEnd (animacja), metoda

Chcę wiedzieć, na którym obraz zobaczyć animacja jest zakończona. .?

Z obiektu animacji, skąd mogę wiedzieć, w którym został uruchomiony ..?

Z góry dziękuję!

+0

spróbować utrzymywanie flagę w onAnimationEnd() – aNi

+0

ja nie po ciebie. .! – Noby

Odpowiedz

31

Cóż, nie wiesz, jaki jest obiekt, na którym zakończyła się animacja. Celem AnimationListener jest słuchanie animacji, a nie obiektu.

Rozwiązanie


1- Stwórz własną klasę animacji i zapisać w nim odniesienie do obiektu, który jest animowanie.

To pozwoli Ci rzucić Animację do YourAnimation w funkcji onAnimationEnd i uzyskać referencję.


2- Prostszym rozwiązaniem jest stworzenie własnego AnimationListener który przechowuje referencję obiektu, który jest animowanym.

Na przykład:

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) { 
    } 
} 

Więc kiedy chcesz animować ImageView: wykonać następujące czynności:

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

myAnimation.setAnimationListener(listener); 
+0

najlepsze rozwiązanie ... –

+0

@ W.K.S hej! Czy mógłbyś, proszę, wyjaśnić trochę więcej na ten temat? :) – Slava

+0

@Slava mój komentarz był nieprawidłowy, faktycznie. Ta odpowiedź jest dobra :) –

Powiązane problemy