如何使用listview渲染大图?

How to use listview to render huge images?

我有一个巨大的图像要渲染 (1024x25373p) 切割成 99 张 1024x256p 的图像。 我曾尝试使用 ListView,但没有成功:它在滚动时崩溃,没有任何错误(除了一行说进程已停止)。 所以,我的问题是,如何渲染这个巨大的图像?

请注意,我尝试使用 moagrius 的 TileView,但没有成功(我无法让它与导航抽屉一起使用)

作为建议,

  1. 如果这是列表视图,您可能不需要“1024x256p”这样大尺寸的图片。 你的 imageView 的实际大小可能比这个小得多。所以这是浪费 如果您尝试直接加载这些图像而不进行一些处理,请堆。

  2. 当然你需要根据你需要的实际尺寸对你的图片做一些缩小。不错的示例和代码已发布在 official doc

  3. 您需要释放内存或清除特定时刻在列表视图中不可见的所有位图。

  4. 您可以使用渐进加载器将图像加载到列表视图中。然后加载将基于滚动发生。

  5. 您也可以在清单中定义更大的堆启用,但不推荐这样做,但在高内存消耗的应用程序中必须这样做。

    android:largeHeap="true"