首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有许多图片的ListView缩略图

有许多图片的ListView缩略图
EN

Stack Overflow用户
提问于 2014-04-11 17:03:22
回答 3查看 89关注 0票数 0

我有一个多行的ListView (大约200行)。

在ListView的每一项中都有一张缩略图。

这些图片是从互联网下载的ListView卷轴。

问题是,如果我快速滚动ListView,它会变得缓慢,并且很快就会出现内存不足的错误。

请你就如何避免这种情况提出建议好吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-11 17:06:55

在延迟加载时使用的自定义适配器上使用视图保持器模式。

懒惰加载使用通用图像加载器。

你可以给毕加索 / 截击图书馆一个机会。它们可以有效地为您处理缓存。

票数 2
EN

Stack Overflow用户

发布于 2014-04-11 17:10:15

基本流程是使用缓存系统:将图像下载到缓存目录->,将其读取回内存缓存-> (如果图像大于显示图像的图像视图),->将其显示在图像视图中。

官方的安卓培训有一个很好的教程,还有关于如何创建这样的东西的完整源代码。

它们通过在用户滚动时暂停后台任务来解决滚动滞后的常见问题。

内存不足通过LruCache进行寻址。

或者,您可以使用第三方库(如通用图像装载机 )来解决此问题。

票数 1
EN

Stack Overflow用户

发布于 2014-04-11 18:49:37

你必须处理你的观点回收。这是一个非常重要的性能问题,您应该始终处理它。

请参阅这个职位,它将指导您在此过程中处理视图回收和使用视图Holder模式。还有看看这个

回收意见有很多理由:

  • 创建对象的成本相对较高。创建的每一个附加对象都需要由垃圾收集系统处理,并且至少暂时增加内存占用;
  • 对于更复杂的视图来说,这更重要,但是膨胀和布局视图对象可能会很昂贵。最常见的情况是,您只对getView中的视图做了一些小的更改,不会影响布局(例如,设置文本),这样您就可以避免布局开销;
  • 请记住,android是为在资源受限的环境中运行而设计的;最后,它已经为您完成了,而且它当然不会伤害任何东西,那么为什么不使用它呢?

锄头对你有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23018520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档