我正在使用 Universal-Image-Loader 来处理我的图像的显示,我在显示图像时使用了类似于 gridview 的实现。在显示图像之前,它将首先下载并缓存到 sd 卡中。虽然仍在下载图像,但我使用每个图像的惰性列表实现来处理视图。
问题:
在下载完所有图像并准备好显示之后,每次我滚动gridview,上下方向图像都会再次使用惰性列表下载,我相信它是从我的应用程序的缓存文件夹(sd卡)下载的. 滚动时有什么方法可以保留图像(最终状态)?这样我每次滚动时都不需要下载它以获得平滑滚动。?我需要等到图像从 sd 卡完全加载,这样我才能平滑滚动。
我从 UIL 获得了这个设置,但我没有看到任何影响。
.resetViewBeforeLoading(false|true)
编辑
这个我也试过
imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(getActivity()));
和下面一样
HttpParams params = new BasicHttpParams();
// Turn off stale checking. Our connections break all the time anyway,
// and it's not worth it to pay the penalty of checking every time.
HttpConnectionParams.setStaleCheckingEnabled(params, false);
// Default connection and socket timeout of 10 seconds. Tweak to taste.
HttpConnectionParams.setConnectionTimeout(params, 10 * 1000);
HttpConnectionParams.setSoTimeout(params, 10 * 1000);
HttpConnectionParams.setSocketBufferSize(params, 8192);
ImageLoaderConfiguration config =
new ImageLoaderConfiguration
.Builder(getActivity())
.threadPoolSize(3)
.memoryCache(new WeakMemoryCache())
.imageDownloader(new HttpClientImageDownloader(getActivity(), new DefaultHttpClient(manager, params)))
.build();
imageLoader.init(config);
options = new DisplayImageOptions.Builder()
.showStubImage(icon)
.resetViewBeforeLoading(false)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error)
.cacheInMemory(true)
.cacheOnDisc(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
我试过了,设置还是一样。