共用方式為


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>注意: </b>在 API 層級 24 之前,方向的預設值為 0。 從 API 層級 24 開始,預設方向會讓處於強制橫向模式的應用程式具有正確的預覽方向,這可能是預設值 0 或 180。 以直向模式運作或允許變更方向的應用程式,在每次方向變更之後仍必須呼叫此方法,以確保在所有情況下都能正確顯示預覽。

android.hardware.Camera.setDisplayOrientation(int)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於

另請參閱