Подтвердить что ты не робот

Как получить объект View, на котором была запущена анимация......?

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

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

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

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

Спасибо заранее..!

4b9b3361

Ответ 1

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

Решение


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

Это позволит вам включить анимацию в свою анимацию в функцию 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);