我正在使用这段代码:
其中Manifest
,Activity Orientation
设置为Landscape。
所以,这就像只允许用户在横向模式下拍照,如果是通过手持设备在纵向模式下拍照,保存的图像是这样的:
旋转 90 度的图像。
在寻找解决方案后,我发现了这个:
解决方案是:
surfaceChanged()
检查_
Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getRotation();
并相应地更改相机的 displayOrientation。
camera.setDisplayOrientation(90);
但无论我旋转设备多少次,surfaceChanged()
都不会被调用。
我什至尝试orientation="Landscape"
在Manifest.xml中删除,但预览本身显示为横向(可能是因为默认android.view.SurfaceView
应该处于横向模式?)。