Я потратил немало времени, пытаясь выяснить, как ждать завершения анимации, прежде чем продолжить код. До сих пор я пытался использовать (animation.hasEnded() == False), используя Thread.sleep, используя таймер, но, похоже, не может заставить ничего работать.Android - дождитесь окончания анимации, прежде чем продолжить?
Что-то, появившееся несколько раз, заключалось в том, чтобы добавить анимацию в анимацию, которую я пробовал, но не уверен, как продвинуться дальше.
создать анимацию, запустить анимацию, а затем иметь строку кода после, который я только хочу быть выполнена после того, как анимация закончена:
Animation moveDown = allAnimStuff(duration); //creates animation
image.startAnimation(moveDown); // Start the animation
displayScore(score); // wait for animation to finish before executing this line
и здесь метод allAnimStuff (длительность) используется для создания анимации:
private Animation allAnimStuff(final long duration) {
Animation moveDown = new TranslateAnimation(image.getX(), image.getX(), (-image.getHeight()), pxHeight - image.getHeight()/2); //creates animation
moveDown.setDuration(duration);
moveDown.setFillAfter(false);
moveDown.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
//some code to make it wait here?
}
@Override
public void onAnimationEnd(Animation animation) {
image.setY((pxHeight/2 - image.getHeight()));
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
return moveDown;
}
Если проблема решена, то примите ответ. –
Это работает пока, но если мне нужно больше строк кода для запуска после завершения анимации, у меня должен быть весь мой код в методе onAnimationEnd? –
Я нашел способ обойти мою проблему в комментарии, спасибо большое за простое решение! –