从imageview Android中删除图像[重复]

Posted

技术标签:

【中文标题】从imageview Android中删除图像[重复]【英文标题】:Remove the image from a imageview Android [duplicate] 【发布时间】:2011-10-02 08:58:31 【问题描述】:

我正在尝试制作一个包含图片库的ImageView。通过触摸用户请求加载下一张图片。如果在服务器中未找到下一张图片或加载需要时间,我需要将旧图片清空。

setVisibility(View.GONE)setVisibility(View.INVISIBLE) 对我不起作用,因为当不可见/消失时,我会停止 onTouch() 检测(并且用户被锁定到当前图像)。

如何使ImageView 加载空位图或清除(删除)当前位图?

【问题讨论】:

ImageView.setImageResource(android.R.color.transparent);来自***.com/questions/2859212/… 请选择正确答案 请标记对您有帮助的答案,它对其他人有帮助.. 【参考方案1】:

我一直用

imageView.setImageDrawable(null);

【讨论】:

非常感谢。它对我有用 这应该被标记为正确答案 奇怪!它不工作。事实上 setImageResouce(0) 和 setBackground(null) 也不起作用。知道清除缓存或其他东西的原因或任何技巧。 你是从主(UI)线程调用这个吗? 如果图像没有加载到 imageView 中并且仍然有人试图清除它,程序会意外停止。有没有办法解决这个问题?【参考方案2】:

试试:

imageView.setImageResource(0);

这会将图像视图设置为不使用资源。

【讨论】:

不适合我 =( 调用 imageView.setImageResource(0) 后它仍然显示旧图片 嗯,很有趣。好吧,它过去对我有用。 谢谢,终于 view.setImageDrawable(null) 工作如我所愿 @ChyBy 如果你使用支持库,你会得到AppCompatImageView 而不是ImageView,它在所有设备上都支持setImageResource(0)【参考方案3】:

据我所知,清除图像时某些方法的“工作”与否取决于用于填充 ImageView 的方法。

因此,如果您设置了img.setImageBitmap(bmp),那么要清除您应该使用img.setImageBitmap(null)。 当您img.setImageResource(resId) 时,您应该使用img.setImageResouce(0) 清除。 等等。

【讨论】:

【参考方案4】:

当然 imageView.setImageResource(0) 有效。它对我来说从来没有失败过,我已经用过很多次了。

setImageResource通常是通过引用R.drawable,(图片的引用),存储为int,但在R.java类中显示为十六进制值,0xf2fs...所以假设这个引用存在它将显示一张图片,如果您稍后将相同的 imageview 传递给一个不存在的引用,则旧图片将不再显示。因此,如果您传递它 0、5 或与 R.java 类中引用的资源不匹配的 int,它将完全从 imageView 的 src 中删除图片。因此,如果您将 0 传递给 imageView 的旧引用。

【讨论】:

imageView.setImageResource(0) 在运行 4.4.2 的三星 S5 上对我不起作用。但是imageView.setImageDrawable(null); 有效。 @rlay3 如果你使用支持库,你会得到AppCompatImageView而不是ImageView,它在所有设备上都支持setImageResource(0)

以上是关于从imageview Android中删除图像[重复]的主要内容,如果未能解决你的问题,请参考以下文章

无法将图像从ImageView上传到Android中的FireBase存储

在android [copy]中没有设置从相机到imageview的图像

Android:无法从mysql数据库中检索图像URL并将其显示在imageView中

将图像从 imageview 上传到 Firebase Android

Android imageview从缩放图像中获取像素颜色

如何从按钮的 imageView 中删除缓存的 SDWebImage