2011-09-27 14 views
16

Ho 3 visualizzazione dell'immagine in cui ho iniziato stessa animazione (tradurre)Come ottenere l'oggetto View su cui è stata avviata l'animazione ......?

Ho animazione ascoltatore, in onAnimationEnd (animazione Animazione) metodo,

Vorrei sapere su quale immagine visualizzare l'animazione è finita. .?

Da oggetto di animazione, come posso sapere in che stato è stato avviato ..?

Grazie in anticipo ..!

+0

provare a tenere una bandiera in onAnimationEnd() – aNi

+0

non ho ottenuto voi. .! – Noby

risposta

31

Bene, non è possibile sapere qual è l'oggetto su cui è terminata l'animazione. L'intero scopo di AnimationListener è di ascoltare l'animazione e non l'oggetto.

Soluzione


1- creare una classe di animazione e salvare in essa un riferimento all'oggetto che sta animando.

Ciò consentirà di trasmettere l'animazione a YourAnimation nella funzione onAnimationEnd e ottenere il riferimento.


2- Una soluzione più semplice è quella di creare il proprio AnimationListener che contiene un riferimento dell'oggetto che è animato.

Ad esempio:

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

Quindi, quando si desidera animare il vostro ImageView: Tu fai la seguente:

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

myAnimation.setAnimationListener(listener); 
+0

migliore soluzione ... –

+0

@ W.K.S hey! Potresti, per favore, spiegarci un po 'di più? :) – Slava

+0

@Slava il mio commento non era corretto, in realtà. Questa risposta è buona :) –

Problemi correlati