출처 : http://sugniandroid.springnote.com/pages/6029095
아래 코드와 같이 Activity 코드 내에 onConfigurationChanged() 함수를 오버라이딩하여 사용하면
폰의 가로 or 세로 전환시의 이벤트를 받아, 이에 대응하는 처리를 삽입할 수 있습니다.
- public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); - Log.i(LOGTAG, "=== onConfigurationChanged is called !!! ===");
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // 세로 전환시 발생
Log.i(LOGTAG, "=== Configuration.ORIENTATION_PORTRAIT !!! ===");
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // 가로 전환시 발생
Log.i(LOGTAG, "=== Configuration.ORIENTATION_LANDSCAPE !!! ===");
}
}
또한 아래의 Activity 메소드들을 사용하면 코드상에서 화면모드를 강제로 전환하는 것이 가능합니다.
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 가로전환
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SCREEN_ORIENTATION_PORTRAIT); // 세로전환
화면 회전이벤트가 발생하면 onDestory()와 onCreate()가 호출됩니다
AndroidMenifest.xml에 다음 코드가 추가되어야 사용 가능 함
- <activity android:name="RosaryList" android:configChanges="keyboardHidden|orientation"></activity>
가로보기와 세로보기의 xml 다른 경우
1. res/layout-port 폴더와 res/layout-land 폴더를 생성하고, 각 폴더에 동일한 이름의 xml 파일을 만든다.
2. AndroidMenifest.xml에 android:configChanges 속성을 제거해야 한다.
'자료' 카테고리의 다른 글
EditText 가로모드 입력시 UI 보이기 (0) | 2012.08.24 |
---|---|
Customize Gallery (0) | 2012.07.20 |
C2DM 종료~! GCM 시작~! (1) | 2012.07.03 |
E/AndroidRuntime(8068): FATAL EXCEPTION: Thread-12 (0) | 2012.07.02 |
C2DM 관리자key 받기 (0) | 2012.06.21 |