我正在填充一个相对复杂的列表项列表,包括几个textview,一个按钮和一个ImageView。与每个项目关联的图像是唯一的,但已经从互联网预取,所以我不需要等待HTTP请求下载图像。
尽管如此,我想知道从内存中延迟加载图像是否仍然是谨慎的,以便尽可能快地显示列表。 Android在管理应用程序列表中有此行为。它使用通用数据填充列表,并在更好的数据可用时更正每个项目。
将多个图像从内存加载到列表视图中会有多大的性能问题(特别是考虑快速滚动大型列表(300多项))?我需要考虑哪些权衡?
答案 0 :(得分:0)
没有必要自己做任何延迟加载。 ListView
内置了延迟加载。它只会加载页面上当前可见的列表视图项。它会在您滚动时加载列表中的后续项目。
一般情况下,如果您遇到性能问题,我只会尝试对其进行优化。正如它在Designing for Performance中讨论的那样,
写作有两个基本规则 高效的代码:
- 不要做你不需要的工作 做。
- 如果可以的话,不要分配内存 避免它。
尝试自己进行加载这些图像的预优化,而没有任何基准来表明您有真正的问题会破坏这两个规则。