从imageview Android中删除图像

Chy*_*yBy 101 java android bitmap imageview

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

setVisibility(View.GONE)或者setVisibility(View.INVISIBLE)不为我工作,因为当看不见/消失时我停止onTouch()检测(并且用户被锁定到当前图像).

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

tri*_*468 381

我总是用

imageView.setImageDrawable(null);
Run Code Online (Sandbox Code Playgroud)

  • 这应该标记为正确的答案 (31认同)

Rib*_*ose 6

尝试:

imageView.setImageResource(0);
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,最后view.setImageDrawable(null)按我的意愿工作 (19认同)

Var*_*iag 6

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

因此,如果将img.setImageBitmap(bmp)其清除,则应使用设置img.setImageBitmap(null)。当你img.setImageResource(resId)再清除你应该使用img.setImageResouce(0)。等等。


小智 5

当然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);`有效. (2认同)