我只想从我的应用程序中打开本机相机应用程序来捕捉照片并将其设置为我的屏幕的背景图像,然后旋转它按钮的按钮。如果使用300万像素摄像头拍摄,照片将旋转n次。如果我将相机分辨率设置为5MP或更高,则应用程序会在第5次点击按钮时强制关闭(照片旋转4次)。在android中处理大位图
Bitmap rotatedBitmap = null;
int curAngle = 0;
private Bitmap rotateImageBitmap(Bitmap capturedPhotoBitmap) {
if(rotatedBitmap != null )
{
rotatedBitmap = null;
}
Matrix matrix = new Matrix();
curAngle = (curAngle + 90) % 360;
matrix.postRotate(curAngle);
rotatedBitmap = Bitmap.createBitmap(capturedPhotoBitmap, 0, 0, capturedPhotoBitmap.getWidth(), capturedPhotoBitmap.getHeight(), matrix, true);
return rotatedBitmap;
}
这是从开发指南....
1. 移动设备通常具有受限的系统资源。 Android设备可以为单个应用程序提供低至16MB的内存。
2. 位图占用大量内存,特别是对于像照片这样的丰富图像。例如,Galaxy Nexus上的相机拍摄高达2592x1936像素(500万像素)的照片。如果使用的位图配置是ARGB_8888(Android 2.3以后的默认设置),则将该图像加载到内存中需要大约19MB的内存(2592 * 1936 * 4字节),立即耗尽了某些设备上的每应用程序限制。
现在大多数手机的摄像头都是8mp或更高。所以图片会很大。 如何在不打扰相机分辨率的情况下旋转我的照片'n'次数。我需要压缩它吗?什么是最好的方法?请帮帮我。