从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中