본문 바로가기

Android/Activity

안드로이드/Android Activity 가로, 세로 모드 전환 처리 하기~!


 < 개발 환경 > 
   SDK 버전 : 안드로이드 SDK 2.2  
   API LEVEL : 8 
   이클립스 버젼 : Indigo
   테스트단말 : 삼성갤럭시 S2



안드로이드/Android Activity 가로, 세로 모드 전환 처리 하기~!



안드로이드 Activity 화면 전환시 android:configChanges="orientation" 속성을 추가해 주면, Activity 재생성을 방지 한다고 알아 봤었는데요.  [안드로이드/Android 화면 전환시 Activity 재생성 문제 해결]  오늘은 Activity가 가로, 세로 모드로 전환 했을 경우(단말을 가로, 세로로 전환했을 경우)에 대한 처리에 대해서 알아 보겠습니다.


보통 Activity를 가로, 세로로 전환했을 경우를 대비해서 나인패치나, View의 "fill_parent" 속성을 이용해서 어느 정도 해상도에 맞게 적용을 하게 되는데요, 그러나 가로, 세로모드를 지원 해야 하는 경우인데, 그 안에 이미지가 있다고 생각해 보시면 어떻게 처리해야 될까요?


가로에 맞게 나온 이미지를 세로화면으로 돌리게 되면, 허걱 말로표현 못할 정도로 엄청나게 뭉뚱그려지게 되는데요..-_-(심하게 이상해지죠?) 그럴경우에 대비해서 "onConfigurationChanged" 메서드를 이용해야 합니다. 아까도 말씀 드렸다 시피, Activity 화면 전환시 android:configChanges="orientation" 속성을 추가하게 되면, Activity 재생성을 방지 한다고 말씀 드렸는데요.!


뿐만 아니라, Activity 전환시 "onConfigurationChanged" 도 호출 하게 하는 역할을 해줍니다. 자 그럼 이 메서드를 이용해서 화면 전환시 처리를 할 수 있겠죠? 


@Override
	public void onConfigurationChanged(Configuration newConfig) {
		super.onConfigurationChanged(newConfig);

		if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) // 세로 전환시
		{ 
			// 배경 화면 교체 처리
		} 
		else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)// 가로 전환시
		{ 
			// 배경 화면 교체 처리
		}
	}


이렇게 가로, 세로 전환시 해당 조건문으로 들어오게 되고, 상황에 맞는 처리를 해주시면, 모드에 상관없는 멋진 화면을 구성 하실 수 있습니다.~! 자 그럼 멋진 화면을 만들러 ㄱㄱ씽~!