안드로이드 관련 포스팅 목록
2020/06/20 - [Android] - [Android] 안드로이드 화면 캡처 방지(Screen Capture Restriction)
자동 화면 회전 방지
안녕하세요. 오늘은 안드로이드 환경에서 앱이 자동 화면 회전 기능에 의해 강제 회전되지 않도록 방지하는 방법에 대하여 알아보겠습니다.
핸드폰 사용자가 자신도 모르게 자동 화면 회전 기능을 켜놨다면 현재 개발중인 앱이 가로 화면으로 바뀌었을 때 UI가 구현되어 있지 않다면 이상한 화면이 보여질 수 있습니다.
따라서 세로 모드로 고정시켜야하는 경우가 있습니다. 이러한 문제를 해결하기 위해서 안드로이드는 화면 고정 API를 제공하고 있습니다.
이제 해당 API를 이용하여 테스트 앱을 구현해보겠습니다.
안드로이드 개발 환경
Windows 10 x64
JDK 1.8.0_221
Android Studio 3.5
테스트 가상 에뮬레이터 Pixel 2 API 28
자동 화면 방지 테스트 앱 구현
이전 포스팅과 마찬가지로 테스트 프로젝트를 생성합니다. 이후 onCreate() 메소드에 아래 한 줄을 추가합니다. setContentView()가 호출되어 UI를 그리기 이전에 먼저 호출하도록 합니다.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
}
실제 핸드폰에서 테스트 앱을 실행합니다. 안드로이드 화면 설정에서 자동 화면 회전 기능을 켠 후 핸드폰을 가로로 회전합니다. 이 때 앱이 회전되는지 확인합니다.
결과적으로 앱이 세로 모드로 고정되어 화면이 자동으로 회전되지 않는 것을 확인하였습니다.
마무리
이번 포스팅에서는 이렇게 안드로이드 자동 화면 회전 기능이 켜져있을 경우 앱에서 어떻게 화면 회전을 방지할 수 있는지 알아보았습니다.