我重用ImageViews为我的显示,但在某些时候,我没有值把它。

那么如何在Android中清除ImageView呢?

我试过了:

mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);

他们都没有清除视图,它仍然显示以前的图像。


当前回答

如果你使用滑翔,你可以这样做。

Glide.with(yourImageView).clear(yourImageView)

其他回答

要删除ImageView中的图像,请使用: title_image.setImageResource (1); 这对我很有用

我以前和丹尼斯一起干过。谢泼德的解决方案:

viewToUse.setImageResource(0);

它可以工作,但它没有被记录,所以它并不清楚它是否会影响视图中的其他东西(如果你喜欢,你可以检查ImageView代码,我没有)。

我认为最好的解决办法是:

viewToUse.setImageResource(android.R.color.transparent);

我最喜欢这个解决方案,因为在恢复状态方面没有任何棘手的问题,而且它也很清楚它在做什么。

听起来好像你想要的是一个默认图像,当ImageView没有显示不同的图像时设置它。联系人应用程序是这样做的:

if (photoId == 0) {
    viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
    // ... here is where they set an actual image ...
}

我试图清除ImageView中的Image和DrawableCache

ImgView.setImageBitmap(null);
ImgView.destroyDrawingCache();

我希望这对你有用!

如果这些解决方案都没有清除你已经设置的图像(特别是setImageResource(0)或setImageResources(android.R.color.transparent),检查以确保当前图像没有设置为背景使用setBackgroundDrawable(…)或类似的东西。

你的代码只是将前景中的图像资源设置为你所设置的背景图像前面的一些透明的东西,并且仍然会显示。