[Android] 코드로 화면 180도 회전시키기
가끔 "충전 코드가 아래 있어서 화면이 거꾸로 보여졌으면 좋겠다" 하는 요구사항이 생길 때
안드로이드 코드 상에서 쉽게 화면의 위 아래를 바꿀 수 있는 방법이 있다.
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