Слушатель для анимации.

Ответить
Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Слушатель для анимации.

Сообщение adarash » 17 июл 2014, 13:45

Существует обычная анимация

Код: Выделить всё

TranslateAnimation animation = new TranslateAnimation(
					Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF,
					0, Animation.RELATIVE_TO_SELF, 0,
					Animation.RELATIVE_TO_PARENT, 1f);
и слушатель к ней

Код: Выделить всё

	animation.setAnimationListener(new AnimationListener() {

				@Override
				public void onAnimationStart(Animation animation) {
				
				}

				@Override
				public void onAnimationRepeat(Animation animation) {

				}

				@Override
				public void onAnimationEnd(Animation animation) {
				
				}
			});
Но мне недостаточно обычного слушателя который срабатывает вначале и в конце анимации. Мне нужно что бы он срабатывал во время анимации. Как мне это реализовать? Если вопрос нубский - прошу меня простить(всюночно кодил, дедлайн скоро).

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Слушатель для анимации.

Сообщение altwin » 18 июл 2014, 18:42

Стандартная анимация не предусматривает промежуточного состояния, ответ заключается в создании своей анимации и расширении класса Animation.

Но думаю можно просто добавить listeneр, когда анимация уже hasStarted() и еще не hasEnded(), а чтобы успеть можно попробывать выставить setDuration() :)
Изображение

Аватара пользователя
adarash
Сообщения: 333
Зарегистрирован: 17 июл 2013, 09:59

Re: Слушатель для анимации.

Сообщение adarash » 18 июл 2014, 18:50

Я сделал класс, который после старта начинает опрашивать View, с определенной периодичностью, о его состоянии и когда обычный слушатель заканчивает анимацию, я останавливаю этот класс.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Слушатель для анимации.

Сообщение altwin » 18 июл 2014, 18:55

adarash писал(а):Я сделал класс, который после старта начинает опрашивать View, с определенной периодичностью, о его состоянии и когда обычный слушатель заканчивает анимацию, я останавливаю этот класс.
Ну думаю можно и так тоже, просто Animation уже имеет методы и что то вроде animation.hasStarted() ? { while( ! animation.hasEnded() ) { //TODO } } : //TODO - должно работать...
Изображение

Ответить