次の方法で共有


Camera.SetDisplayOrientation(Int32) メソッド

定義

注意事項

deprecated

プレビュー表示の時計回りの回転を度単位で設定します。

[Android.Runtime.Register("setDisplayOrientation", "(I)V", "")]
[System.Obsolete("deprecated")]
public void SetDisplayOrientation (int degrees);
[<Android.Runtime.Register("setDisplayOrientation", "(I)V", "")>]
[<System.Obsolete("deprecated")>]
member this.SetDisplayOrientation : int -> unit

パラメーター

degrees
Int32

画像が時計回りに回転する角度。 有効な値は 0、90、180、270 です。

属性

注釈

プレビュー表示の時計回りの回転を度単位で設定します。 これは、プレビュー フレームとスナップショットの後に表示される画像に影響します。 このメソッドは、縦モードのアプリケーションに役立ちます。 正面カメラのプレビュー表示は、回転の前に水平方向に反転されます。つまり、画像はカメラ センサーの中心縦軸に沿って反映されます。 そのため、ユーザーは自分自身がミラーを見ていると見ることができます。

これは、 PreviewCallback#onPreviewFrame、JPEG 画像、または記録されたビデオで渡されるバイト配列の順序には影響しません。 このメソッドは、プレビュー中は呼び出せません。

カメライメージをディスプレイと同じ向きで表示する場合は、次のコードを使用できます。

public static void setCameraDisplayOrientation(Activity activity,
                    int cameraId, android.hardware.Camera camera) {
                android.hardware.Camera.CameraInfo info =
                        new android.hardware.Camera.CameraInfo();
                android.hardware.Camera.getCameraInfo(cameraId, info);
                int rotation = activity.getWindowManager().getDefaultDisplay()
                        .getRotation();
                int degrees = 0;
                switch (rotation) {
                    case Surface.ROTATION_0: degrees = 0; break;
                    case Surface.ROTATION_90: degrees = 90; break;
                    case Surface.ROTATION_180: degrees = 180; break;
                    case Surface.ROTATION_270: degrees = 270; break;
                }

                int result;
                if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                    result = (info.orientation + degrees) % 360;
                    result = (360 - result) % 360;  // compensate the mirror
                } else {  // back-facing
                    result = (info.orientation - degrees + 360) % 360;
                }
                camera.setDisplayOrientation(result);
            }

API レベル 14 以降では、プレビューがアクティブな場合にこのメソッドを呼び出すことができます。

<b>Note: </b> API レベル 24 の場合、方向の既定値は 0 です。 API レベル 24 以降では、既定の向きは、強制横モードのアプリケーションのプレビューの向きが正しく、既定の 0 または 180 のいずれかになります。 縦モードで動作するアプリケーションや、向きの変更を許可するアプリケーションは、すべてのケースで正しいプレビュー表示を確保するために、向きの変更後もこのメソッドを呼び出す必要があります。

android.hardware.Camera.setDisplayOrientation(int)の Java ドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

適用対象

こちらもご覧ください