1

我的服务器中有高质量、丰富的彩色图像。我ListView在小的 ImageViews 中显示它们。用户选择项目后,他将获得所选图像的全屏。以这种方式选择图像后,图像会快速加载,因为它已经加载并且我将它们保存在缓存中。

问题是第一次启动时整个列表加载速度很慢,因为每个项目都需要下载。有什么办法可以减少图像加载ListView?在我看来,ListView加载速度应该很快,并且在选择后图像可能会加载更长的时间。我知道我可以通过将低质量、调整大小的图像从服务器传递到列表来优化这一点。并在选择通过高质量的图像网址后。但这是一项非常艰巨的工作,因为我有大量图像,并且调整每个图像的大小会很痛苦。

任何想法我怎么能优化这个甚至一点点?

更新:我想我的问题还不够清楚。ListView 或图像加载没有问题。我不会将用户挂在某个“加载”屏幕上,我会异步加载图像,并且我确实表示正在为 ListView 中的每个项目加载图像。但是由于互联网连接缓慢,缩略图会在那里停留太久,我认为用户会退出应用程序......我正在寻找一种优化加载过程的方法。加载刚刚调整大小的图像会很棒,例如:50kb 用于 ListView 和 fullsize 用于 SelectedView。我认为这样用户体验会好很多。

4

2 回答 2

1

https://github.com/nostra13/Android-Universal-Image-Loader。Universal Image Loader 是异步的,使用缓存,是 LazyLoading 的改进版本。

您可以将图像缓存在内存或磁盘中。您还可以提供自定义文件夹来缓存图像。Universal Image Loader 还为您提供其他配置选项。

https://github.com/thest1/LazyList。你也可以使用延迟加载。

为了提高性能和平滑滚动,请使用 ViewHolder。http://developer.android.com/training/improving-layouts/smooth-scrolling.html

http://www.youtube.com/watch?v=wDBM6wVEO70。关于 Listview 的 View Holder 的讨论。

于 2013-03-22T12:24:42.583 回答
0

您可以使用通用图像加载器。它使您能够在后台线程上下载图像。基本上,您ListView使用一些默认缩略图显示,当下载每个图像时,UIL 会用真实图像替换缩略图。

这样,用户在下载图像时就不会被困住,但显示所有缩略图肯定需要下载所有大图像,直到您开始为图像提供小变体。

于 2013-03-22T12:23:09.253 回答