私はこのコードを使用しています:
ここでManifest
、はLandscapeActivity Orientation
に設定されています。
したがって、ユーザーは横向きモードでのみ写真を撮ることができ、デバイスを縦向きモードで保持して写真を撮っている場合、保存される画像は次のようになります。
90度回転した画像。
解決策を検索した後、私はこれを見つけました:
ソリューションは次のとおりです。
surfaceChanged()
チェック中
Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getRotation();
それに応じてカメラの displayOrientationを変更します。
camera.setDisplayOrientation(90);
しかし、何度デバイスを回転させてsurfaceChanged()
も呼び出されません。
Manifest.xmlで削除しようとしorientation="Landscape"
ましたが、プレビュー自体が横向きに表示されます (デフォルトが横向きモードになっているためでしょうか?)。android.view.SurfaceView