我花了很多时间尝试用碎片中的SurfaceView和相机拍照。
我已经看过其他解决方案了:
我有一个有效的代码,但我还有一个大问题: 当我拍照时,保存的图像旋转。
我有一个很大的限制因素:
- 屏幕方向仅为人像。
由于我在清单中android:screenOrientation="portrait"
时无法检查设备方向,因此无法自行轮换已保存的图像。
另一方面,我知道像Snapchat这样的应用程序可以实现它,所以我认为这不是不可能的。 如果我使用以下代码就像一个魅力!
Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
mMediaUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, mMediaUri);
startActivityForResult(takePhotoIntent, TAKE_PHOTO_REQUEST);
但我必须在片段上使用它,这会打开一个新活动,对吗?我可能应该寻找官方的android源代码吗?
我已尝试检查EXIF标记,但始终返回0.
我尝试过使用MediaStore但总是返回0。
Cursor cursor = context.getContentResolver().query(photoUri,
new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);
我认为解决方案是旋转图像,但我无法获得图像的原始方向。