0

我有一个简单的游戏..有雪向下移动,底部布局有一只企鹅..我们必须保护企鹅免受落雪

我想问你当我们点击它时我们如何破坏图像视图(雪景图片)?我设置:

 lebah2.setVisibility(View.GONE);

但它只是隐藏了..因为我创建了一个计时器来检查碰撞..当雪地与企鹅碰撞时,生命是减一..如果我输入这段代码,计时器将永远减少生命..

for(int awal = 1 ; awal<=akhir; awal++)
                                    {
                                        ImageView lebah2 = (ImageView) findViewById(awal);
                                        int atas = lebah2.getTop();
                                        int left = lebah2.getLeft();
                                        if(atas >=180)
                                        {
                                            if(left >180 && left <240)
                                            {
                                                data.live--;
                                                 TextView nyawa = (TextView) findViewById(R.id.live);
                                                 nyawa.setText(String.valueOf(data.live));
                                                 lebah2.setVisibility(View.GONE);
                                            }
                                        }

我必须做什么?

4

2 回答 2

2

您可以像这样删除视图:

((LinearLayout)lebah2.getParent()).removeView(lebah2);

如果视图不可见,您也可以跳过循环:

if(iv.getVisibility() == View.VISIBLE) {
   for(int awal = 1 ; awal<=akhir; awal++) {
      //Check if collision
   }
}
于 2012-06-05T09:14:18.433 回答
0

当您将可见性设置为 GONE 时,视图不会被移除。例如,如果您为父级获取所有子级,则视图将被计算在内。

用这个:

 ImageView lebah2 = (ImageView) findViewById(R.id.lebah2);

((RelativeLayout)lebah2.getParent()).removeView(lebah2);
于 2012-06-05T09:14:56.010 回答