我正在创建一个游戏,我希望在给予他积分时向玩家展示一个简单的"得分" - 动画.这是我扔到屏幕上的视图:
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();
}
};
}
Run Code Online (Sandbox Code Playgroud)
只要在任何给定时间屏幕上只有一个得分动画,这段代码实际上效果很好.如果玩家再次得分,则在删除最后一个分数之前,应用程序崩溃 - 可能是因为第二个分数在动画期间获得了自动删除的事件.这是使用动画的不良做法吗?你们怎么处理这个?
android ×1