3

私はこのコードを使用しています:

https://github.com/commonsguy/cw-advandroid/blob/master/Camera/Picture/src/com/commonsware/android/picture/PictureDemo.java

ここでManifest、はLandscapeActivity Orientationに設定されています。

したがって、ユーザーは横向きモードでのみ写真を撮ることができ、デバイスを縦向きモードで保持して写真を撮っている場合、保存される画像は次のようになります。

ここに画像の説明を入力

90度回転した画像。

解決策を検索した後、私はこれを見つけました:

Android - カメラのプレビューが横向き

ソリューションは次のとおりです。

surfaceChanged()チェック中

Display display = ((WindowManager)getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
display.getRotation();

それに応じてカメラの displayOrientationを変更します。

camera.setDisplayOrientation(90);

しかし、何度デバイスを回転させてsurfaceChanged()も呼び出されません。

Manifest.xmlで削除しようとしorientation="Landscape"ましたが、プレビュー自体が横向きに表示されます (デフォルトが横向きモードになっているためでしょうか?)。android.view.SurfaceView

4

2 に答える 2