티스토리 뷰

가끔 "충전 코드가 아래 있어서 화면이 거꾸로 보여졌으면 좋겠다" 하는 요구사항이 생길 때 

안드로이드 코드 상에서 쉽게 화면의 위 아래를 바꿀 수 있는 방법이 있다.

setRequestedOrientation를 써서 ActivityInfo에 있는 상수를 지정해주면 된다.


화면을 180도 회전시키고 싶으면



 적용이 되려면 기기의 자동회전 설정이 되어 있어야 한다.


ActivityInfo에는 이 외에도 여러가지 옵션이 있고, 이 부분은 매니페스트에서 설정하는 옵션과 동일하다.

SCREEN_ORIENTATION_UNSPECIFIED, 선호하는 모드가 없음. 시스템에게 결정권을 준다.
SCREEN_ORIENTATION_LANDSCAPE, 가로모드

SCREEN_ORIENTATION_PORTRAIT, 세로모드
SCREEN_ORIENTATION_USER, 사용자가 선호하는 방향
SCREEN_ORIENTATION_BEHIND, 뒤에 있는 액티비티와 같은 방향
SCREEN_ORIENTATION_SENSOR, 오리엔테이션 센서로 결정
SCREEN_ORIENTATION_NOSENSOR, 오리엔테이션 센서 무시하기
SCREEN_ORIENTATION_SENSOR_LANDSCAPE, 가로모드를 선호하지만 센서로 변경 가능
SCREEN_ORIENTATION_SENSOR_PORTRAIT, 세로모드를 선호하지만 센서로 변경 가능
SCREEN_ORIENTATION_REVERSE_LANDSCAPE, 가로모드를 180도 회전
SCREEN_ORIENTATION_REVERSE_PORTRAIT, 세로모드를 180도 회전
SCREEN_ORIENTATION_FULL_SENSOR, 네 가지 회전을 모두 허용
SCREEN_ORIENTATION_USER_LANDSCAPE, 기본은 가로모드지만 사용자가 센서로 변경 가능
SCREEN_ORIENTATION_USER_PORTRAIT, 기본은 세로모드지만 사용자가 센서로 변경 가능 (SENSOR_PORTRAIT과 차이 확인을 못함)
SCREEN_ORIENTATION_FULL_USER, 이것도 SENSOR와 차이를 잘 모르겠음 SCREEN_ORIENTATION_LOCKED 현재 위치 고정





[참고 자료]

안드로이드 레퍼런스

ActivityInfo

http://developer.android.com/intl/ko/reference/android/content/pm/ActivityInfo.html

R.attr

http://developer.android.com/intl/ko/reference/android/R.attr.html#screenOrientation




댓글