2011-01-27 65 views
3

我正在填充一个相对复杂的列表项的列表,其中包括几个textviews,一个按钮和一个ImageView。与每个项目相关的图像都是唯一的,但是已经从互联网上预取,所以我不需要等待HTTP请求来下载图像。预取的图像是否应该被延迟加载到ListView中?

不过,我想知道是否延迟加载内存中的图像仍然是谨慎的,以便尽可能快地显示列表。 Android在管理应用程序列表中具有此行为。它使用通用数据填充列表,并在更好的数据可用时更正每个项目。

将多个图像从内存载入列表视图(特别是考虑快速滚动大列表(300多项))时,性能问题有多大?我需要考虑哪些折衷?

回答

0

不应该有必要自己做任何懒惰加载。 A ListView内置了延迟加载。它只会加载页面上当前可见的列表视图项目。它在滚动时加载列表中后面的项目。

一般来说,如果您实际遇到性能问题,我只会尝试优化这一点。由于它谈论的Designing for Performance

有编写 高效的代码的两个基本规则:

  • 不要做,你不需要做 工作。
  • 不要分配内存,如果你可以避免它, 。

试图做加载这些图片你自己的预优化,没有任何基准测试,以表明你有一个真正的问题将打破这两方面的规则。

+0

我实际上找到了一个来自框架团队成员的例子,他有一个解决方案。如果图像在缓存中,他立即加载它们,但是如果ListView在扔掉,则不会。然后他只是加载一个默认图像,直到scrollview停止,然后懒加载图像。 – CodeFusionMobile 2011-03-11 14:06:00