我正在尝试制作一个包含图片库的ImageView
。通过触摸用户请求加载下一个图像。如果在服务器中找不到下一个图像或需要时间加载,我需要将旧图像清空。
setVisibility(View.GONE)
或setVisibility(View.INVISIBLE)
对我不起作用,因为当隐身/不见时我停止onTouch()
检测(并且用户被锁定到当前图像)。
如何让ImageView
加载空位图或清除(删除)当前位图?
答案 0 :(得分:358)
我总是使用
imageView.setImageDrawable(null);
答案 1 :(得分:5)
尝试:
imageView.setImageResource(0);
这会将图像视图设置为不使用资源。
答案 2 :(得分:5)
当然imageView.setImageResource(0)可以正常工作。它对我来说从未失败过,而且我已多次使用过它。
setImageResource通常传递引用R.drawable,(图片的引用),它存储为int,但在R.java类中显示为十六进制值,0xf2fs ...所以假设这个引用存在它会显示一张图片,如果你以后传递相同的imageview一个不存在的参考,旧的图片将不再显示。因此,如果您传递0,或5或与您的R.java类中引用的资源不匹配的int,它将从imageView的src中完全删除该图片。因此,如果您将0传递给imageView的旧引用。
答案 3 :(得分:5)
从我注意到的,"工作"清除图像时是否采用某种方法取决于用于填充ImageView的方法。
因此,如果您设置img.setImageBitmap(bmp)
,那么要清除您应使用img.setImageBitmap(null)
。
当您img.setImageResource(resId)
然后清除时,您应该使用img.setImageResouce(0)
。
等