[android] 안드로이드 UI 화면 회전 및 레이아웃 변경 관리
안드로이드 앱을 개발할 때 화면을 회전하거나 기기의 방향을 바꿀 때 UI 레이아웃을 유동적으로 변환시켜야 할 때가 있습니다. 이를 관리하기 위해 안드로이드에서는 화면 회전 이벤트를 처리하고, 화면 방향에 따라 다른 레이아웃을 사용할 수 있습니다.
화면 회전 이벤트 처리
안드로이드에서는 화면 회전 시 ConfigurationChanges
이벤트를 처리할 수 있습니다. 이를 통해 화면이 회전될 때 자동으로 호출되는 메서드를 정의하여, UI 레이아웃을 동적으로 변경할 수 있습니다.
예를 들어, onConfigurationChanged()
메서드를 오버라이드하여 화면 방향을 감지하고, 감지된 방향에 따라 다른 레이아웃을 설정할 수 있습니다.
다음은 Kotlin으로 작성된 예시 코드입니다.
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
setContentView(R.layout.activity_main_landscape)
} else {
setContentView(R.layout.activity_main)
}
}
다양한 레이아웃 관리
화면 회전 및 방향에 따라 다른 레이아웃을 사용하기 위해 안드로이드에서는 리소스 폴더에 레이아웃 파일을 추가하여 각 방향에 맞는 레이아웃을 관리할 수 있습니다.
예를 들어, res/layout-land
폴더에는 가로 방향에서 사용할 레이아웃 파일을, res/layout-port
폴더에는 세로 방향에서 사용할 레이아웃 파일을 추가할 수 있습니다. 시스템은 기기의 방향에 따라 적절한 레이아웃을 자동으로 사용하게 됩니다.
이러한 방식을 통해 안드로이드 앱에서 화면 회전 및 레이아웃 변경을 유연하게 관리할 수 있습니다.
참고 문헌:
- 안드로이드 공식 문서: Support different screen sizes
- 안드로이드 공식 문서: Handling configuration changes