我正在寻找一个库或一些想法,如何从磁盘或url逐部加载图像并再次将其分段到RAM中。所以我看到这可以通过直接从URL读取和写入到磁盘上将整个图像加载到RAM中的缓冲区来完成,然后当图像在磁盘上时,以某种方式创建仅部分图像的位图,这样我就不需要全部加载它,并将其放入ListView中。
问题是,我正在处理非常长的图像(长度超过10K像素,宽度为4-600),如果一次性加载所有内容到一个位图中,它们会占用大量的RAM。我不能像Google Android教程中的大型位图处理部分那样简单地缩小它们,因为这会导致宽度太小而无法处理。因此,如果我能在磁盘上生成小的位图片段,则可以通过在ListView中加载它们来避免将整个图像加载到RAM中。
现在我正在从位图中将长图像分割成片段,但我意识到这并没有真正实现我想要做的事情,因为整个图像都加载到内存中的一个位图中,然后将其拆分,最后进行GC(所以我仍然使用了全部RAM)。我正在新的顶级Android手机上测试应用程序,它的表现良好,但随着较大图像在内存中临时拆分,堆大小达到80mb+,这在具有较低堆限制的设备上将成为问题。
问题是,我正在处理非常长的图像(长度超过10K像素,宽度为4-600),如果一次性加载所有内容到一个位图中,它们会占用大量的RAM。我不能像Google Android教程中的大型位图处理部分那样简单地缩小它们,因为这会导致宽度太小而无法处理。因此,如果我能在磁盘上生成小的位图片段,则可以通过在ListView中加载它们来避免将整个图像加载到RAM中。
现在我正在从位图中将长图像分割成片段,但我意识到这并没有真正实现我想要做的事情,因为整个图像都加载到内存中的一个位图中,然后将其拆分,最后进行GC(所以我仍然使用了全部RAM)。我正在新的顶级Android手机上测试应用程序,它的表现良好,但随着较大图像在内存中临时拆分,堆大小达到80mb+,这在具有较低堆限制的设备上将成为问题。