我正在写一个相机模块,用于拍摄照片。剪辑位图时发生OutOfMemoryError BitmapFactory.createBitmap
由于预览的宽度/高度与图片的宽度/高度不同,我需要在拍摄照片时剪切图片,使其与屏幕中显示的相同。
我用这个:
mCamera.takePicture(null, null, mJpegCallback);
设置图像回调,然后解码和剪辑回调位图:
Bitmap originBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
...
Bitmap bitmap = Bitmap.createBitmap(originBitmap, 0, 0, clipWidth, clipHeight);
然而,OutOfMemoryError
发生时创建剪辑bitmap.I已经尝试了许多方式来重复使用数据,而不是复制新的位图,但它不起作用。那么,请有人能帮我吗?
有没有任何限制/要求,不允许你使用相机意图API? – nikvs
@nikvs,是的,这个应用程序将绑定到一个自定义的硬件,我们想要按下该设备上指定的物理按钮时拍摄的照片,相机通知API不符合我们的需要,所以我们必须自己写。 –