如何从Android中的大位图加载切片?

Mar*_*ram 8 java android memory-management bitmap

如果我有一个通常会产生"内存不足"异常的大型位图文件,我该如何将其加载为tile?例如,我有10,000x10,000的图像,我想将其分成10x10网格的1,000x1,000像素图块.

我见过这个功能,Bitmap.createBitmap(sourceBitmap, x, y, width, height)但它需要我的大图像作为源输入.

如何在不完全加载输入图像的情况下从输入图像中获取图块?

Mar*_*ram 18

来自Romain Guy的回答是否可以将位图切成小块而不将整个内容加载到内存中?:

Android 2.3.3有一个名为android.graphics.BitmapRegionDecoder的新API,可让您完全按照自己的意愿行事.

例如,您可以执行以下操作:

BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(myStream, false);  
Bitmap region = decoder.decodeRegion(new Rect(10, 10, 50, 50), null);
Run Code Online (Sandbox Code Playgroud)

简单 :)