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);
fonte
2011-11-10 12:47:35
provare a tenere una bandiera in onAnimationEnd() – aNi
non ho ottenuto voi. .! – Noby