블로그

[안드로이드] 화면 회전 (screen orientation) 제어

안드로이드 앱에서 화면을 가로, 세로로 고정시키거나 앱 내에서 API 를 사용해서 센서를 변경하는 방법입니다.

앱의 화면을 세로(portrait) 또는 가로(landscape) 로 고정하고자 할 경우는 AndroidManifest.xml 에 속성을 지정하면 됩니다. screenOrientation 속성값을 portrait 또는 landscape 로 설정하면 됩니다. 추가적인 속성은 레퍼런스를 참고하시면 됩니다.

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/AppTheme.NoActionBar"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
    android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

프로그램 내에서 화면을 가로 또는 세로로 고정하거나 센서를 활성화 시키고자 할 경우는 액티비티(Activity) 의 setRequestedOrientation 메소를 사용하면 됩니다.

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

위의 코드를 onCreate 에서 사용시는 해당 액티비티는 세로 모드로 고정됩니다. 만약 고정을 풀고 센서를 활성화 할려면

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

위와 같이 속성을 정의하면 됩니다. 위의 메소를 이용하면 특정 상황에서 화면 모드를 설정하고 센서를 활성화 시키는 등의 작업이 가능합니다.

2015-12-17 목록