개발하는 두더지

안드로이드 화면회전에 따른 UI 교체 (가로모드, 세로모드) 본문

Java,Android

안드로이드 화면회전에 따른 UI 교체 (가로모드, 세로모드)

덜지 2019. 2. 12. 11:21

화면회전이 발생하면 onCreate()가 호출되면서 UI를 새로 그리게 됩니다.

UI를 새로 그리지 않고 가로 모드, 세로 모드에 따라서 UI를 어떻게 변경할 수 있을까요?



우선 configChangesorientationscreenSize 값을 설정해줍니다. 그러면 화면 전환시 onCreate()가 호출되지 않습니다.

<activity android:name=".MainActivity" android:theme="@style/myTheme"
android:configChanges="orientation|screenSize">


화면 전환시 발생하는 이벤트 콜백에서 화면 모드에 따라 다른 동작을 진행하면 됩니다.

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

if(newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(this, "세로모드", Toast.LENGTH_SHORT).show();
}

if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "가로모드", Toast.LENGTH_SHORT).show();
}


}


Comments