다음을 통해 공유


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 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

추가 정보