Android 删除计时器上的Imageview
我有这样一个代码,我想在单击imageview后删除它。我使用相对布局。我该怎么办? 我必须删除它,而不是隐藏它,因为我有很多imageview,我想销毁它,这样程序才能更快地工作Android 删除计时器上的Imageview,android,timer,imageview,Android,Timer,Imageview,我有这样一个代码,我想在单击imageview后删除它。我使用相对布局。我该怎么办? 我必须删除它,而不是隐藏它,因为我有很多imageview,我想销毁它,这样程序才能更快地工作 banyakmusuh= new CountDownTimer(50000,1500) { @Override public void onTick(long millisUntilFinished) { // TODO Auto-generated method stub
banyakmusuh= new CountDownTimer(50000,1500) {
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
Random a = new Random();
int posisix = a.nextInt(500);
btn = new ImageView(level2.this);
btn.setImageResource(R.drawable.salju);
i= i+1;
btn.setId(i);
RelativeLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params.setMargins(posisix, 0, 0, 0);
btn.setLayoutParams(params);
RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.tingkat2);
linearLayout.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
data.nilai+=10;
TextView score1 = (TextView) findViewById(R.id.skore);
score1.setText(String.valueOf(data.nilai));
//what the code for delete imageview?
//some people say to write this code but it cant, there are a green line when i debug it
//((RelativeLayout)v.getParent()).removeView(v);
}
});
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
//banyakmusuh.start();
}
}.start();
如果有对特定视图的引用,则可以使用:
yourRelativeLayout.removeView(imageViewToRemove);
我会:
// I would consider renaming your layout, btw
final RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.tingkat2);
btn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
linearLayout.removeView(btn);
}
});
Android在Java上工作。在java中不能销毁或删除对象。您只能对java机器说,如果需要,机器可以随意销毁对象
是的,我认为,您应该从
removeView(btn)
开始。但也不要忘记设置btn=null
。因此,您告诉java机器可以释放内存 移除视图怎么样?我有一个问题,先生,我有一个简单的游戏,我们必须点击imageview。。如果有这么多的mageview,而我不删除它,程序将运行得很慢。。怎么解决,先生?我已经编辑了答案。我很乐意帮忙,请随便问,我不是“先生”,朋友:-)。至于运行缓慢的程序,请查看android开发者页面中的优化页面,谢谢我将重命名我的布局。。它不起作用。。单击imageview时,会显示一个类文件编辑器..:(从技术上讲,这应该会将其从视图中删除。但是,我想作为一种解决方法,您可以尝试:setBackgroundDrawable(null);ImageView仍将保留在内存中,因为视图有对它的引用,但至少图像数据将不再存在。但是,removeView应该可以工作,如果这不能为您解决问题,您可能会遇到更严重的问题,但如果ImageView保留,则会出现一个新问题..因为我想将碰撞ImageView设置为mageview..如果imageview仍然保留,则会导致循环冲突..=(可能会添加可见性检查以排除任何不可见的视图:if(view.isShown())