【问题标题】:Best practices for handling large number of images in android在android中处理大量图像的最佳实践
【发布时间】:2013-09-24 03:55:16
【问题描述】:

我在原生 android 应用程序中将 150 张图片加载到 2 个不同的布局(自定义网格布局和自定义线性布局)中(它就像一个画廊:每个视图中相同的 150 张图片但大小不同 - 我需要这样做,所以我可以非常快速地切换到任一视图中的特定索引)。

有两种约束: 1. 第一次可靠地通过网络加载(之后在本地缓存)并在传输过程中处理潜在的网络故障。图像已经尽可能压缩,同时保持可读性。 它们是异步加载的,如果出现中断,它会尝试从服务器更新任何本地不可用的图像。然而,当这种情况发生时,会有相当多的滞后。

  1. 由于将大量图像加载到内存中而导致的内存问题。图像数量达到阈值后,应用变得有点慢。

我正在重用视图(当图像集更改时),并推迟诸如从 UI 线程读取位图之类的事情。在此类应用中,我还应该遵循其他最佳做法吗?

【问题讨论】:

  • 试试this图片加载器

标签: android image performance


【解决方案1】:

您可以使用 Android-Universal-Image-Loader (https://github.com/nostra13/Android-Universal-Image-Loader) 来处理大量图像。该库正确处理了图像缓存和内存泄漏。

【讨论】:

    【解决方案2】:

    不言而喻,但就尺寸和文件大小而言,请下载您可以代表它们正在显示的位置的最小图像。使用压缩级别可以帮助解决后者。

    另一个 hacky 解决方案是在服务器端组合图像网格,然后简单地将单个结果图像发送到设备。如果图像因用户而异,并且每次打开应用程序时都不同,那么这样做的好处就会减少。

    【讨论】:

      【解决方案3】:

      不要同时加载完整的布局。使用名为 getView 的方法,调用该方法后屏幕上会出现单独的 View。您需要重写此方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        相关资源
        最近更新 更多