[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 폴더에는 세로 방향에서 사용할 레이아웃 파일을 추가할 수 있습니다. 시스템은 기기의 방향에 따라 적절한 레이아웃을 자동으로 사용하게 됩니다.

이러한 방식을 통해 안드로이드 앱에서 화면 회전 및 레이아웃 변경을 유연하게 관리할 수 있습니다.


참고 문헌: