【问题标题】:android reading bitmap from url in image listviewandroid从图像列表视图中的url读取位图
【发布时间】:2018-10-15 20:29:37
【问题描述】:

我有一个关于在 listview 中加载 android 位图的问题。我有 980 个图像 url,所以我必须在 listview 或 recyclerview 中显示这些图像。平滑滚动和快速启动非常重要。如何使用多线程加载图像?使用asysnc 任务或 java 线程池(执行器)。哪个更有效?当用户快速滚动时,它必须执行最后一个线程,并且不能有线程问题。(停止旧线程)。

not:我不得使用第三方库和组件

感谢您的回答。

【问题讨论】:

  • 如果你正确地实现了recyclerview,它会自动为你处理这一切。您不能将图像保存在内存中,它会在滚动时卸载控件。您应该使用缩略图来提高速度。它被称为 recyclerview,因为它实际上在您滚动时一遍又一遍地使用完全相同的控件。

标签: android multithreading bitmap smooth-scrolling


【解决方案1】:

您应该在 RecyclerView 中使用 Glide 或 Picasso。

还阅读该文档,这非常重要:Handling bitmaps

Google 团队推荐使用 Glide,他们在那个链接中说:

对于大多数情况,我们建议您使用 Glide 库来获取, 解码并在您的应用程序中显示位图。 Glide 提取出大部分内容 处理这些和其他与工作相关的任务的复杂性 在 Android 上使用位图和其他图像。

【讨论】:

  • 我不得使用第三方组件
  • @ahmetvefa53 已更新。 Google 相当推荐开发者使用 Glide。因为无论如何您还需要导入 RecyclerView...
  • recyclerview加载图片有什么区别
  • RecyclerView 会让用户认为视图数量 == 图像数量,但实际上他们正在回收不可见(而不是缓存)的视图。结合Glide,非常强大。您可以在名为 onViewRecycled 的方法中释放内存,并在其中使用 Glide 清除视图。等等...它完全符合您的需要(包括以有效的方式从 url 加载图像)
  • 我无法理解“RecyclerView 会让用户认为视图数量 == 图像数量,但实际上他们正在回收不可见(而不是缓存)的视图。”你能解释得更好吗?
猜你喜欢
  • 2014-08-22
  • 1970-01-01
  • 2017-07-01
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
相关资源
最近更新 更多