图像未在本地缓存(使用通用图像加载器)-缓慢的图像加载时间

图像未在本地缓存(使用通用图像加载器)-缓慢的图像加载时间,第1张

图像未在本地缓存(使用通用图像加载器)-缓慢的图像加载时间

我在列表视图中遇到了类似的图像问题。此答案可能会纠正您的错误图像问题。

我刚刚使用UniversalImageLoader下载了示例项目,它表现出与您描述的相同的行为。

到目前为止,要注意一些源代码。

public static final int DEFAULT_THREAD_POOL_SIZE = 3;public static final int DEFAULT_THREAD_PRIORITY = Thread.NORM_PRIORITY - 1;public static final int DEFAULT_MEMORY_CACHE_SIZE = 2 * 1024 * 1024; // bytes

这表示在任何时候都将有三个线程下载,最大2MB的图像。您要下载的图片有多大?您还在缓存到磁盘吗?如果是这样,那将会很慢。

要在ImageLoader中配置一些基本选项,您将需要传递给displayImage:

 DisplayImageOptions options = new DisplayImageOptions.Builder()     .showStubImage(R.drawable.stub_image)     .cacheInMemory()     .cacheonDisc()     .build();

我也希望您尝试以下选项:

ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this)    .enableLogging()    .memoryCacheSize(41943040)    .discCacheSize(104857600)    .threadPoolSize(10)    .build();imageLoader = ImageLoader.getInstance();imageLoader.init(imageLoaderConfiguration);

经过我的测试,图像在磁盘上,但是加载仍然很慢。

经过广泛的测试,我确定了主要问题是UniversalImageLoader速度很慢。具体来说,ImageLoader和LoadAndDisplayImageTask阻止了工作。我(很快)将LoadAndDisplayImageTask重写为AsyncTask,它立即表现更好。您可以在GitHub上下载代码的分支版本。

带有AsyncTasks的通用图像加载器



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5164535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存