본문 바로가기

자료

안드로이드 화면 전환시 이벤트 받기

 

출처 : http://sugniandroid.springnote.com/pages/6029095

 

아래 코드와 같이 Activity 코드 내에 onConfigurationChanged() 함수를 오버라이딩하여 사용하면
폰의 가로 or 세로 전환시의 이벤트를 받아, 이에 대응하는 처리를 삽입할 수 있습니다.

  1. public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
  2.      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 메소드들을 사용하면 코드상에서 화면모드를 강제로 전환하는 것이 가능합니다.

  1. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // 가로전환
  2. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SCREEN_ORIENTATION_PORTRAIT); // 세로전환

 

화면 회전이벤트가 발생하면 onDestory()와 onCreate()가 호출됩니다

 

AndroidMenifest.xml에 다음 코드가 추가되어야 사용 가능 함

  1.  <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