Я создаю игру и хотел бы показать игроку простую анимацию «счета», когда ему начисляются кредиты. Это вид, который я выбрасываю на экран:
public class Score extends FrameLayout {
public Score(Context context, int score) {
super(context);
TextView txt = new TextView(context);
txt.setText(String.valueOf(score).toUpperCase());
addView(txt);
Animation anim = AnimationUtils.loadAnimation(context, R.anim.score);
startAnimation(anim);
anim.setAnimationListener(animationListener);
}
private void Remove(){
ViewGroup parent = (ViewGroup)getParent();
parent.removeView(this);
}
private AnimationListener animationListener = new AnimationListener() {
@Override
public void onAnimationEnd(Animation animation) {
Remove();
}
};
}
Этот код на самом деле работает довольно хорошо, если в любой момент времени на экране отображается только ОДНА анимация счета. Если игрок набирает очки еще до того, как последний счет был удален, приложение вылетает - возможно, из-за того, что второе число получает событие, которое само удаляется во время анимации. Как вы, ребята, справитесь с этим?