0

カスタム ポートレート カメラを作成していますが、画像の向きに問題があります。詳細には、カメラを常に縦向きにする必要があり、それはマニフェスト構成を使用して行われます。

android:screenOrientation="ポートレート"

そして私はアプリケーションに設定しました:

customCamera.setDisplayOrientation(90);

デバイスを回転させると (90,180,270 度)、(カメラのプレビューから) 正しい画像が表示されるため、これは機能します。

デバイスの向きがロックされている(無効になっている)ときは気にしませんが、有効になっていると、向きの変更はないようです。コードを使用して常に0度を取得します:

getWindowManager().getDefaultDisplay().getRotation();

技術的には、撮影した写真に (exif データを使用して) 0、1、3、6、または 8 の値を書き込む必要があります。手順は次のとおりです。1) カスタム ポートレート カメラで正しい向きを設定します - 完了です。2) 右の画像をプレビューします - 完了! 3) デバイスの向きが有効になっている場合は、現在の回転 (0.90、180、270 度) を取得します。 4) 撮影した写真を正しい向きの exif タグで書き込みます。

開発にはSamsung Galaxy Iを使用しています。

質問は次のとおりです。アプリケーションが常にカスタムの縦向きカメラを表示し、回転させることはできませんが、デバイスの向きが有効になっている場合、デバイスの向きを取得するにはどうすればよいですか?

ありがとう、ニコラオス

4

1 に答える 1

0

OrientationEventListenerを使用できます

OrientationEventListener mOrientationListener = new OrientationEventListener(
            this, SensorManager.SENSOR_DELAY_NORMAL) {

        @Override
        public void onOrientationChanged(int orientation) {
        }

    };
于 2013-09-02T01:10:01.843 に答える