我正在处理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();
答案 0 :(得分:1)
如果您使用的是GridView,这是正常行为。
实际上,当您滚动浏览时,不可见或滚出屏幕的元素将被破坏,或者换句话说无效。原因是内存优化,这是由android完成的。
如果你的网格元素中有任何文本视图,它将在返回到屏幕时加载得更快。但对于Images,ImageLoader可能需要一些时间将图像从缓存加载到ImageView中。这在我看来是正常的。
如果您不希望销毁图像,那么您将遇到OutOfMemory异常,这样做会更好。