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

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

我试过了:

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

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


当前回答

我可以通过定义一个可绘制对象(类似于blank_white_shape.xml)来实现这一点:

<shape xmlns:android="http://schemas.android.com/apk/res/android"       
       android:shape="rectangle">
    <solid android:color="@android:color/white"/>
</shape>

当我想清除图像视图时,我只需调用

 imageView.setImage(R.drawable.blank_white_shape);

这对我来说非常有用!

其他回答

我也遇到了同样的问题,我把视图的背景色改为布局背景色,你可以这样做:

 edit_countflag.setBackgroundColor(Color.parseColor("#ffffff"));

//然后设置图像

edit_countflag.setImageResource(R.drawable.flag_id);

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

Glide.with(yourImageView).clear(yourImageView)

我试图清除ImageView中的Image和DrawableCache

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

我希望这对你有用!

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

viewToUse.setImageResource(0);

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

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

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

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

嘿,我知道我回答这个问题已经很晚了,但我想我必须分享这个,

当你重置图像时调用的方法必须与你设置图像时调用的方法相同。

当你想重置图片源@dennis。只有当你最初使用setImageResource()在位图中设置图像时,shepard回答才能正常工作。

例如,

我已经使用setImageBitmap(),因此设置setImageResource(0)没有工作,而不是我使用setImageBitmap(null)。