Java 通用图像加载器不保留显示的图像

Java 通用图像加载器不保留显示的图像,java,android,universal-image-loader,Java,Android,Universal Image Loader,我正在处理3mb的图像,问题是当我松开手指滚动时,这些图像在某种程度上是从sd卡的缓存中下载的。我正在使用PauseOnScrollListener,但它并没有解决问题。我希望在滚动时,即使我没有查看图像,图像仍保留在网格上。Universal Image Loader通过在未显示时不显示图像来处理它,当我暂停并看到特定图像时,它将再次显示 options = new DisplayImageOptions.Builder() .showStubImage(icon)

我正在处理3mb的图像,问题是当我松开手指滚动时,这些图像在某种程度上是从sd卡的缓存中下载的。我正在使用PauseOnScrollListener,但它并没有解决问题。我希望在滚动时,即使我没有查看图像,图像仍保留在网格上。Universal Image Loader通过在未显示时不显示图像来处理它,当我暂停并看到特定图像时,它将再次显示

options = new DisplayImageOptions.Builder()
            .showStubImage(icon)
            //Because you reuse view for different
            //images you can see a previous image in the view while new image is loading. .resetViewBeforeLoading(true
            .showImageForEmptyUri(R.drawable.ic_empty)
            .showImageOnFail(R.drawable.ic_error)
            .cacheOnDisc(true)
            .cacheInMemory(true)
            .bitmapConfig(Bitmap.Config.RGB_565)
            .build();

如果您使用的是GridView,这是正常的行为

事实上,当你滚动浏览时,屏幕上看不见的元素或是从屏幕上滚出来的元素会被破坏,或者换句话说,会被清空。原因是内存优化,这是由android完成的

如果您的网格元素中有任何textview,当它返回屏幕时,加载速度会更快。但是对于图像,ImageLoader可能需要一点时间将图像从缓存加载到ImageView中。在我看来这是正常的


如果您不希望图像被销毁,那么您将遇到OutOfMemory异常,这会更好。

您是否尝试通过web加载图像?我的意思是,你是在试图将一个图像url设置为一个图像视图吗?非常简洁的解释。非常感谢。你能在这个问题上提供一些支持性的文章吗?我相信这也能帮助其他人