본문 바로가기
Programing/android

android 화면 가로/세로 방향 설정

by Benedictus711 2021. 9. 13.
728x90

앱 개발시에 화면의 방향을 강제로 한 방향으로 설정할 필요가 있을때 사용하면 좋다.

앱의 특성상 세로화면 혹은 가로화면만 제공해야 된다면 아래와 같이 설정해 주면 된다.

 

1. AndroidManifest.xml 에서 설정

<activity android:name=".MainActivity"

android:screenOrientation="portrait">

screenOrientation의 옵션으로 방향설정 및

방향센서의 값으로 화면전환 옵션 부여 할 수 있다.

속성값으로는 아래와 같이 종류가 있다.

android:screenOrientation=["unspecified" | "behind" |                                     
                                    "landscape" | "portrait" |                                     
                                    "reverseLandscape" | "reversePortrait" |                                     
                                    "sensorLandscape" | "sensorPortrait" |                                     
                                    "userLandscape" | "userPortrait" |                                     
                                    "sensor" | "fullSensor" | "nosensor" |                                     
                                    "user" | "fullUser" | "locked"]

 

아래 옵션에 대한 설명은 구글 developers에서 제공하는 설명이다.

옵션명 설명
"unspecified" 기본값입니다. 시스템이 방향을 선택합니다.
시스템이 사용하는 정책과 특정 컨텍스트에서 이루어지는 선택은 기기마다 다를 수 있습니다.
"behind" 액티비티 스택에서 바로 아래에 있는 액티비티와 동일한 방향입니다.
"landscape" 가로 방향입니다(디스플레이의 높이보다 너비가 더 긺).
"portrait" 세로 방향입니다(디스플레이의 너비보다 높이가 더 긺).
"reverseLandscape" 정상적인 가로 방향에서 반대 방향인 가로 방향입니다. API 레벨 9에서 추가되었습니다.
"reversePortrait" 정상적인 세로 방향에서 반대 방향인 세로 방향입니다. API 레벨 9에서 추가되었습니다.
"sensorLandscape" 기기 센서에 따라 정상적인 가로 방향 또는 반전된 가로 방향이 될 수 있습니다. 사용자가 센서 기반 회전을 잠갔더라도 센서가 사용됩니다. API 레벨 9에서 추가되었습니다.
"sensorPortrait" 기기 센서에 따라 정상적인 세로 방향 또는 반전된 세로 방향이 될 수 있습니다. 사용자가 센서 기반 회전을 잠갔더라도 센서가 사용됩니다. API 레벨 9에서 추가되었습니다.
"userLandscape" 기기 센서 및 사용자의 기본 설정에 따라 정상적인 가로 방향 또는 반전된 가로 방향이 될 수 있습니다. API 레벨 18에서 추가되었습니다.
"userPortrait" 기기 센서 및 사용자의 기본 설정에 따라 정상적인 세로 방향 또는 반전된 세로 방향이 될 수 있습니다. API 레벨 18에서 추가되었습니다.
"sensor" 기기 방향 센서가 방향을 결정합니다. 디스플레이 방향은 사용자가 기기를 잡고 있는 방법에 따라 다르며 사용자가 기기를 회전할 때 변경됩니다. 그러나 일부 기기는 기본적으로 4개의 모든 방향으로 회전하지 않습니다. 4개의 모든 방향을 허용하려면 "fullSensor"를 사용합니다. 사용자가 센서 기반 회전을 잠근 상태라도 센서가 사용됩니다.
"fullSensor" 기기 방향 센서가 4개의 방향을 결정합니다. 이는 4개의 화면 방향을 허용한다는 것을 제외하면 기기가 정상적으로 수행하는 것과 상관없이 "sensor"와 유사합니다. (예를 들어, 일부 기기는 세로 반전 또는 가로 반전을 정상적으로 사용하지 않지만 이 특성은 정상적으로 사용합니다.) API 레벨 9에서 추가되었습니다.
"nosensor" 물리적 방향 센서를 참조하지 않고 방향을 결정합니다. 센서가 무시되므로 사용자가 기기를 이동하는 방법에 따라 디스플레이가 회전하지 않습니다.
"user" 사용자의 현재 기본 설정 방향입니다.
"fullUser" 사용자가 센서 기반 회전을 잠금 설정한 경우 user와 동일하게 작동하고, 잠금 설정을 하지 않은 경우 fullSensor와 동일하게 작동하며 4개의 화면 방향을 허용합니다. API 레벨 18에서 추가되었습니다.
"locked" 현재 회전 방향을 잠금 설정합니다. API 레벨 18에서 추가되었습니다.

 

 

2. Method안에서 사용하는 방법

 

AppCompatActivity의 setRequestedOrientation() 메소드 사용

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

해당 방법은 Activity가 recreate 될 수 있음을 참고 합니다.

728x90

댓글