我想启动原生Android相机并将图像保存在指定位置。问题是在我点击捕获照片后,预览会显示保存/放弃选项。单击“保存”后,本机摄像机将以横向方式旋转,并且不会显示捕获的图像。
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.setPackage(defaultCamera);
File f = new File(android.os.Environment.getExternalStorageDirectory(), "temp.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(intent, 1);
答案 0 :(得分:0)
这是因为重新创建了活动,因此数据不再存在。您无法控制是否会发生这种情况。你在onActivityResult上捕获了图片吗?如果是这样,您可以尝试在保留的片段中保存路径。
答案 1 :(得分:0)
有些设备会在保存之前旋转图像。
查看照片的exif数据,特别注意
ExifInterface exifInterf = new ExifInterface(SourceFileName);
int exifOrientation = exifInterf.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (exifOrientation ) {
case ExifInterface.ORIENTATION_ROTATE_270:
rotate = 270;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_90:
rotate = 90;
break;
}
Matrix matrix = new Matrix();
matrix.postRotate(rotate);
bitmap = Bitmap.createBitmap(bitmap , 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);