Android摄像头旋转内存不足异常

Android摄像头旋转内存不足异常,android,out-of-memory,android-camera,android-canvas,Android,Out Of Memory,Android Camera,Android Canvas,我一直在尝试使用Android上的camera API使用camera拍摄图像(由于后端口的原因,我没有使用Camera2)。由于Android上的大多数后向摄像头安装在横向模式下,因此需要旋转这些图像。在Bitmap.createBitmap(…)方法中,使用Android中的Matrix类的postRotate(int degree)方法创建一个新位图,该位图占用更多的头部空间,如果未分配,则会导致OOM异常 由于我开发的特定应用程序包括在捕获的图像上放置覆盖文本,因此我必须最终将位图绘制到

我一直在尝试使用Android上的camera API使用camera拍摄图像(由于后端口的原因,我没有使用Camera2)。由于Android上的大多数后向摄像头安装在横向模式下,因此需要旋转这些图像。在Bitmap.createBitmap(…)方法中,使用Android中的
Matrix
类的
postRotate(int degree)
方法创建一个新位图,该位图占用更多的头部空间,如果未分配,则会导致OOM异常

由于我开发的特定应用程序包括在捕获的图像上放置覆盖文本,因此我必须最终将位图绘制到画布上。因此,我决定在画布上绘制相同的位图,而不是创建另一个位图

以下是我在
onDraw
方法中使用的代码:

Matrix mMatrix = new Matrix();
mMatrix.postRotate(90);
mMatrix.postTranslate(mBitmapFile.getHeight(),0);
canvas.drawBitmap(mBitmapFile,mMatrix,null);

这种方法是否可以推广到通用用例中,以避免位图的旋转和相应的OOM异常,或者它是否存在会增加更多复杂性的缺陷?

您是否尝试过使用
BitmapOptions
inSampleSize
@VipulAsri使用
inJustDecodeBounds
inSampleSize
@VipulAsri是的。我已经这样做了您尝试将
BitmapOptions
inJustDecodeBounds
inSampleSize
@vipurasri一起使用。是的,我已经这样做了。