【问题标题】:Preloading some images for listview with UniversalImageLoader使用 UniversalImageLoader 为列表视图预加载一些图像
【发布时间】:2012-12-28 08:19:41
【问题描述】:

我在我的 Android 项目中使用 Sergey Tarasevich 的库 Universal Image Loader 将图像加载到 ListView 中。目前,我正在适配器的 getView() 方法中加载图片,一切正常。

问题是我想提前加载一些图像(三个或四个),以便用户在滚动时不需要等待图像加载。使用 Universal Image Loader 实现这一目标的最佳方法是什么?

【问题讨论】:

  • 这将是相同的图像,一次又一次?如果是这样,只需启用缓存,它更靠近 URL 的底部。缓存默认是禁用的——你可以启用它,这样你就只会在第一次时承受加载惩罚。
  • @Ewald 恐怕没那么简单。该列表是具有个人资料图片的朋友列表。但是,我确实将它们缓存在磁盘和内存中,但问题是我(下载)将它们加载到 getView 中。只有在图像已经存在时才会调用它以避免显示存根。
  • 那么我知道的唯一选择是在 AsyncTask 中进行加载 - 在后台运行并在这些图像可用时更新 UI。
  • @Ewald 是的,但这基本上就是 UIL 所做的。
  • 确实如此 - 我认为您可以在执行其他操作时在后台生成它。

标签: java android android-listview universal-image-loader


【解决方案1】:

您可以使用loadImage(...)getView(...) 中的以下图像进行预缓存。

【讨论】:

  • 所以.. 你的意思是当我在 getView 中的位置 x 时,我在位置 x+1、x+2 等上使用 loadImage?
  • 是的,类似的。你可以试试,也许有帮助。
  • 现在将它与监听器结合使用来向下或向上预加载。只需预加载一个即可大大提升用户体验。
  • 您为预加载图像做了什么?您可以发布一些在从通用图像加载器加载图像时进行更改的代码
  • 快速滚动并预加载多个图像时,loadImage() 会为同一个 URI 多次调用。您的库是否意识到这一点并且不会同时开始加载相同的 URI?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-31
  • 2011-04-07
相关资源
最近更新 更多