大型位图的Android加载

我正在制作Android应用程序,我需要在cavas中加载图像(位图),并使用“缩放缩放”手势调整它的大小。 但是,当图像超过一定大小时,应用程序会崩溃(OutOfMemory异常)。 如何优化图像的加载和操作?

加载我使用的图像:

BitmapFactory.decodeResource (ctx.getResources (), R.drawable.image)

绘制它:

imgCanvas.drawBitmap (image, posX, posY, null), 

要改变它的大小:

Bitmap.createScaledBitmap (originalBitmap, neww, NEWH, true);

这不是微不足道的。

根据图像的当前比例和图像的当前可见部分,仅以适当的分辨率加载该图像的一部分:
https://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html

当缩小的并要显示按比例缩小整个图像,使用来自本方法BitmapRegionDecoder类采取BitmapFactory.Options参数,并将其设置inSampleSize为值大于1(优选的值是2的幂) :
https://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize

当放大时,在较低分辨率第一缩放在已经示出(在要用inSampleSize的值> 1)和懒惰地加载较高分辨率版本(其中inSampleSize使用比您所使用的前一值小) BitmapRegionDecoder和淡入更高分辨率的版本逐渐。

用户放大时,请继续操作,直到inSampleSize为1。

链接地址: http://www.djcxy.com/p/12291.html

上一篇: Android loading of large bitmaps

下一篇: Save the edited data in rows