2013-03-03 2 views
4

У меня есть TranslateAnimation на моем классе. Анимация начинается автоматически.Как отменить анимацию, но не закончить ее?

Я установил кнопку, чтобы щелкнуть, анимация будет отменена (animation.cancel();).

Я также установил AnimationListener для своего класса. Если моя анимация закончится, я запустил новое действие (вы перейдете в меню).

public void onAnimationEnd(Animation animation) { 
    startActivity(new Intent(Class.this, Class2.class)); 
} 

Мое приложение полагается на то, что пользователь должен нажать кнопку до окончания анимации. Проблема в том, что animation.cancel(); допускается как конец анимации.

Как отменить анимацию другим способом, который не учитывался как конец анимации? Это возможно?

Заранее благодарен!

ответ

2

animation.cancel() звонит анимации слушателя, как API documentation describes:

Отмена анимации вызывает анимации слушателя, если он установлен, чтобы предупредить конец анимации. Если вы отмените анимацию вручную, , вы должны вызвать reset() перед тем, как начать анимацию.

Если вы хотите другое поведение на отмене() и onAnimationEnd() я хотел бы предложить логическую переменную, которая может быть установлена ​​на кнопку мыши, и onanimationend проверяет, правда ли это.

+0

ссылки на документ в следующий раз! – user3995789

+0

Я добавил ссылку на официальные документы API Android. – abbath

19

После того, как анимация будет отменена, вы можете удалить слушатель, таким образом, предотвращая onAnimationEnd от призыва:

@Override 
public void onAnimationCancel(Animator animation) { 
    animation.removeAllListeners(); 
} 
Смежные вопросы