【发布时间】:2014-09-05 06:40:37
【问题描述】:
我需要显示一个项目列表,每个项目都包含文本和不同数量的图像。
我目前正在使用带有自定义适配器的 ListView 来显示这些项目。对于每个项目,我使用了一个带有 LinearLayout 的 HorizontalScrollView 来显示图像。在 ListView 的 getView 方法中,我读取每个项目的图像 URI 并动态创建 ImageView,然后异步加载图像。我使用 ViewHolder 来保存包含每个项目的所有 ImageView 的 LinearLayout。
问题是,如果我向下滚动 ListView 并向后滚动,我将丢失项目的内容,这意味着我必须再次加载图像。而且大多数图像太大并且加载速度很慢。实际上,在我的应用上,屏幕一次只能显示大约 2 或 3 个项目,因此滚动非常频繁。
我有一些改进的想法,但我不确定其中一个是否会更好。
- 由于我只是显示每个图像的缩略图,也许我可以将缩略图保存到临时目录并动态加载它们,加载小图像会快得多。当临时目录变大时,我可能必须清除它。
- 我每个项目最多有 9 张图像,所以即使我缓存缩略图并经常滚动,它可能仍然很慢。也许我必须手动显示列表而不是使用 ListView,所以每个项目都不会被重用,并且加载只会发生一次。但是,如果我在 LinearLayout 中保留大约 100 个项目,我的应用程序可能仍然会崩溃。
- 其他更好的选择...
任何建议都会有所帮助!谢谢!
【问题讨论】: