【发布时间】:2013-04-19 06:06:54
【问题描述】:
我正在使用此代码:
在Manifest 中,Activity Orientation 设置为横向。
所以,这就像只允许用户在横向模式下拍照,如果是通过手持设备在纵向模式下拍照,保存的图像是这样的:
旋转 90 度的图像。
在寻找解决方案后,我发现了这个:
Android - Camera preview is sideways
解决方案在哪里:
在surfaceChanged() 中检查
Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getRotation();
并相应地更改相机的显示方向。
camera.setDisplayOrientation(90);
但无论我旋转设备多少次,surfaceChanged() 都不会被调用。
我什至尝试在 Manifest.xml 中删除 orientation="Landscape",但预览本身显示为横向(可能是因为默认 android.view.SurfaceView 应该处于 横向模式?)。
【问题讨论】:
-
查看此链接,它可能对您有用。 stackoverflow.com/questions/5157984/…
-
嗯,有有个原因,我不再在书中介绍此代码... :-) 由于历史原因,我将它留在了 repo 中,但是肯定是它的问题。 FWIW,我确实计划在未来几个月内重新讨论这个话题,着眼于解决这类问题,我已经做了一个笔记来调查这个问题。但是,现在,我对你没有特别的建议——我很抱歉。
标签: android camera commonsware