[Android] 액티비티 화면 방향 설정


액티비티 화면은 크게 생각하면 "가로" , "세로" 두가지로 되어있고 폰을 360도 회전한다고 생각했을때 총 4가지의 방향이 있습니다.


보통 매니페스트에서 액티비티 내 속성에 아래와 같이 추가합니다.


<activity
android:name=".test"
android:screenOrientation="화면방향값">
</activity>


이번 포스팅에는 위의 screenOrientation 의 속성에 대해 정리해볼까 하는데요. 예전에 안드로이드 OS 2.2 (프로요) 개발당시에 봤었던 속성 보다 훨씬 많이 있어서 깜짝 놀랬습니다.



<ScreenOrientation 속성 종류>



속성

설명

unspecified

 기본값. 시스템에서 방향을 결정합니다. 선택된 디바이스마다 방향은 달라질 수 있습니다.

behind

 액티비티 스택에서 이전의 액티비티 방향과 같은 방향을 표시합니다.

landscape

 액티비티를 가로 방향으로 고정할때 사용됩니다.

portrait

 액티비티를 세로 방향으로 고정할때 사용됩니다.

reverseLandscape

 가로방향 고정, 일반적인 방향에서 역방향으로 표시합니다. (API 9 [OS ver 2.3] 추가)

reversePortrait

 세로방향 고정, 일반적인 방향에서 역방향으로 표시합니다. (API 9 [OS ver 2.3] 추가)

sensorLandscape

 가로방향 고정, 센서에 따라 정/역방향으로 표시합니다. (API 9 [OS ver 2.3] 추가)

sensorPortrait

 세로방향 고정, 센서에 따라 정/역방향으로 표시합니다. (API 9 [OS ver 2.3] 추가)

userLandscape

 가로방향 고정, 센서 장치 및 사용자 센서 기본설정에 따라 정/역방향으로 표시될 수 있습니다. 만약 센서 기반 회전 기능이 고정되어 있는 경우에는 landscape와 동일하게 동작하고 그렇지 않으면 sensorLandscape와 동일하게 동작합니다.(API 18 [OS ver 4.3] 추가)

userPortrait

 세로방향 고정, 센서 장치 및 사용자 센서 기본설정에 따라 정/역방향으로 표시될 수 있습니다. 만약 센서 기반 회전 기능이 고정되어 있는 경우에는 portrait와 동일하게 동작하고 그렇지 않으면 sensorPortrait와 동일하게 동작합니다.(API 18 [OS ver 4.3] 추가)

sensor

 방향은 기기 회전 센서에 의해 결정됩니다. 화면 방향은 사용자가 기기를 회전시킬때 변경되며 일부 장치에서는 4가지 방향으로 회전하지만 기본적으로 4가지 방향으로 회전하지 않습니다. 4방향을 모두 허용하려면 fullSensor 를 사용해야합니다.

fullSensor

 방향은 4 방향 중 하나의 기기 방향 센서에 의해 결정됩니다. (API 9 [OS ver 2.3] 추가)

nosensor

 방향은 물리적인 센서를 참조하지 않고 결정됩니다. 센서가 무시되므로 화면은 사용자가 움직이는 방법을 기반하지 하지 않습니다. 이 차이점을 제외하고 시스템은 unspecified 와 동일한 규정을 사용하여 방향을 선택합니다.

user

 사용자가 현재 선호하는 방향을 표시합니다.

fullUser

 센서 기반 회전 기능이 잠긴 경우에는 user 와 동일한 기능으로 동작하고, 그렇지 않을때에는 fullSensor와 동일하게 동작합니다.(API 18 [OS ver 4.3] 추가)

locked

 무엇이든지 현재의 회전으로 방향을 잠급니다.(API 18 [OS ver 4.3] 추가)


보통 ScreenOrientation 옵션은 화면을 고정할때 사용하는 옵션이므로 위의 표에서 landscape, portrait 속성을 가장 많이 사용합니다.


위의 설명글은 구글플레이 레퍼런스 사이트를 참고하여 해석한 부분인데요. 내용이 이상한 부분 있으시면 댓글로 말씀해주시면 감사하겠습니다.

+ Recent posts