【问题标题】:Loading big images with least effort以最少的努力加载大图像
【发布时间】:2013-03-12 07:08:16
【问题描述】:

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

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

有什么想法可以优化一下吗?

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

【问题讨论】:

  • 您正在做的过程是正确的,您正在考虑做的事情(调整大小)可以通过一些代码来实现。是的,需要高速网络连接才能快速加载图像。
  • stackoverflow.com/questions/15543811/uil-loading-exact-image。你问了这个问题。它与链接中的问题有什么关系吗??
  • 通过代码调整大小会很棒。但我什至不知道,我应该开始看什么。 Raghunandan,不,我让它工作了,现在只是在寻找一种优化它的方法。很抱歉忘记接受您的回答

标签: android listview optimization


【解决方案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 的演讲。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-12
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2021-08-11
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      相关资源
      最近更新 更多