小编Sve*_*lge的帖子

如何在动画结束时删除视图?

我正在创建一个游戏,我希望在给予他积分时向玩家展示一个简单的"得分" - 动画.这是我扔到屏幕上的视图:

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

22
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1