Как получить вид объекта, на котором была запущена анимация ......? - PullRequest
16 голосов
/ 27 сентября 2011

У меня есть 3 вида изображения, в которых я запустил ту же анимацию (перевод)

У меня есть слушатель анимации, в методе onAnimationEnd (анимация анимации),

Я хочу знать, на каком виде изображенияанимация закончилась ..?

От объекта анимации, как я могу узнать, в каком он был запущен ..?

Заранее спасибо ..!

1 Ответ

33 голосов
/ 10 ноября 2011

Ну, вы не можете знать, что это за объект, на котором анимация закончилась.Цель AnimationListener - слушать анимацию, а не объект.

Решение


1- Создайте свойСоздайте собственный класс Animation и сохраните в нем ссылку на анимируемый объект.

Это позволит вам преобразовать Animation в YourAnimation в функции onAnimationEnd и получить ссылку.


2- Более простое решение - создать собственный AnimationListener, содержащий ссылку на анимированный объект.

Например:

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

Так что, когдаВы хотите анимировать свой ImageView: Вы делаете следующее:

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

myAnimation.setAnimationListener(listener);
...