我重用ImageViews为我的显示,但在某些时候,我没有值把它。
那么如何在Android中清除ImageView呢?
我试过了:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
他们都没有清除视图,它仍然显示以前的图像。
我重用ImageViews为我的显示,但在某些时候,我没有值把它。
那么如何在Android中清除ImageView呢?
我试过了:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
他们都没有清除视图,它仍然显示以前的图像。
当前回答
嘿,我知道我回答这个问题已经很晚了,但我想我必须分享这个,
当你重置图像时调用的方法必须与你设置图像时调用的方法相同。
当你想重置图片源@dennis。只有当你最初使用setImageResource()在位图中设置图像时,shepard回答才能正常工作。
例如,
我已经使用setImageBitmap(),因此设置setImageResource(0)没有工作,而不是我使用setImageBitmap(null)。
其他回答
我以前和丹尼斯一起干过。谢泼德的解决方案:
viewToUse.setImageResource(0);
它可以工作,但它没有被记录,所以它并不清楚它是否会影响视图中的其他东西(如果你喜欢,你可以检查ImageView代码,我没有)。
我认为最好的解决办法是:
viewToUse.setImageResource(android.R.color.transparent);
我最喜欢这个解决方案,因为在恢复状态方面没有任何棘手的问题,而且它也很清楚它在做什么。
editText.setText (" ");
imageView.setImageResource(0);
听起来好像你想要的是一个默认图像,当ImageView没有显示不同的图像时设置它。联系人应用程序是这样做的:
if (photoId == 0) {
viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
// ... here is where they set an actual image ...
}
我能指出你都试图设置和int它期望一个可绘制。
你不应该做以下事情吗?
imageview.setImageDrawable(this.getResources().getDrawable(R.drawable.icon_image));
imageview.setImageDrawable(getApplicationContext().getResources().getDrawable(R.drawable.icon_profile_image));
我试图通过使用ImageView. setimageressource(0)来删除ImageView的图像,但它对我不起作用。 幸运的是,我在日志中看到了这条信息:
Caused by: java.lang.IllegalStateException: The specified child already has a parent.
You must call removeView() on the child's parent first.
比如说,layoutmanager是你的布局实例,然后你需要那样做:
RelativeLayout layoutManager = new RelativeLayout(this);
ImageView image = new ImageView(this);
// this line worked for me
layoutManager.removeView(image);