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);
spróbować utrzymywanie flagę w onAnimationEnd() – aNi
ja nie po ciebie. .! – Noby