如何使用listview渲染大图?
How to use listview to render huge images?
我有一个巨大的图像要渲染 (1024x25373p) 切割成 99 张 1024x256p 的图像。
我曾尝试使用 ListView,但没有成功:它在滚动时崩溃,没有任何错误(除了一行说进程已停止)。
所以,我的问题是,如何渲染这个巨大的图像?
请注意,我尝试使用 moagrius 的 TileView,但没有成功(我无法让它与导航抽屉一起使用)
作为建议,
如果这是列表视图,您可能不需要“1024x256p”这样大尺寸的图片。
你的 imageView 的实际大小可能比这个小得多。所以这是浪费
如果您尝试直接加载这些图像而不进行一些处理,请堆。
当然你需要根据你需要的实际尺寸对你的图片做一些缩小。不错的示例和代码已发布在 official doc
您需要释放内存或清除特定时刻在列表视图中不可见的所有位图。
您可以使用渐进加载器将图像加载到列表视图中。然后加载将基于滚动发生。
您也可以在清单中定义更大的堆启用,但不推荐这样做,但在高内存消耗的应用程序中必须这样做。
android:largeHeap="true"
我有一个巨大的图像要渲染 (1024x25373p) 切割成 99 张 1024x256p 的图像。 我曾尝试使用 ListView,但没有成功:它在滚动时崩溃,没有任何错误(除了一行说进程已停止)。 所以,我的问题是,如何渲染这个巨大的图像?
请注意,我尝试使用 moagrius 的 TileView,但没有成功(我无法让它与导航抽屉一起使用)
作为建议,
如果这是列表视图,您可能不需要“1024x256p”这样大尺寸的图片。 你的 imageView 的实际大小可能比这个小得多。所以这是浪费 如果您尝试直接加载这些图像而不进行一些处理,请堆。
当然你需要根据你需要的实际尺寸对你的图片做一些缩小。不错的示例和代码已发布在 official doc
您需要释放内存或清除特定时刻在列表视图中不可见的所有位图。
您可以使用渐进加载器将图像加载到列表视图中。然后加载将基于滚动发生。
您也可以在清单中定义更大的堆启用,但不推荐这样做,但在高内存消耗的应用程序中必须这样做。
android:largeHeap="true"