android通过文本和图像动态显示列表,提高了性能



我需要显示一个项目列表,每个项目都有文本和不同数量的图像。

我目前正在使用带有自定义适配器的ListView来显示这些项。对于每一项,我都使用了一个带有LinearLayout的HorizontalScrollView来显示图像。在ListView的getView方法中,我读取每个项目的图像URI并动态创建ImageViews,然后异步加载图像。我使用ViewHolder来保存LinearLayout,它包含每个项目的所有ImageViews。

问题是,如果我向下滚动ListView并向后滚动,我将丢失项目的内容,这意味着我必须再次加载图像。而且大多数图像都太大,加载速度非常慢。事实上,在我的应用程序上,屏幕一次只能显示大约2到3个项目,所以滚动非常频繁。

我有一些改进的想法,但我不确定其中一个是否会更好。

  1. 由于我只是显示每个图像的缩略图,也许我可以将缩略图保存到临时目录中并动态加载,加载小图像会更快。当临时目录变大时,我可能必须清除它
  2. 我每个项目最多有9个图像,所以即使我缓存缩略图并频繁滚动,它可能仍然很慢。也许我必须手动显示列表,而不是使用ListView,这样每个项目都不会被重用,并且加载只会发生一次。但是,这个列表将来会越来越大,如果我在LinearLayout中保留大约100个项目,我的应用程序可能仍然会崩溃
  3. 其他更好的选择

任何建议都会有帮助!谢谢

您可以使用LazyLoading来显示您的图像。为此,您可以使用通用图像加载器。lazyloading所做的是下载一次图像,缓存它,并在随后的请求中显示缓存中的图像。

最新更新