Universal-Image-Loader不保留显示的图像

时间:2013-09-24 10:55:05

标签: java android universal-image-loader

我正在处理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();

1 个答案:

答案 0 :(得分:1)

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

实际上,当您滚动浏览时,不可见或滚出屏幕的元素将被破坏,或者换句话说无效。原因是内存优化,这是由android完成的。

如果你的网格元素中有任何文本视图,它将在返回到屏幕时加载得更快。但对于Images,ImageLoader可能需要一些时间将图像从缓存加载到ImageView中。这在我看来是正常的。

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