[펌] [안드로이드] 액티비티 화면을 가로, 혹은 세로로 고정하기
안드로이드 앱을 개발하다 보면 부득이하게 액티비티 화면을 가로, 혹은 세로로 고정해야 할 때가 있습니다. 예를 들자면 게임의 경우는 대부분 가로모드로 고정이 되어 실행되죠. 물론 액티비티 화면을 세로 모드로 고정해야 할 때도 있습니다. 화면의 레이아웃이 가로, 혹은 세로 모드에 최적화되어 있는 경우에는 부득이하게 화면의 회전을 강제로 막아야만 합니다.
가로 모드는 Landscape, 세로 모드는 Portrait가 정식 명칭입니다. 안드로이드 액티비티의 화면을 Landscape 혹은 Portrait로 고정하고 싶은 경우, 두 가지 방법이 있습니다. 첫번째는 Manifest 파일에서 Activity에 screenOrientation 속성을 주는 방법이고, 두번째는 안드로이드 액티비티의 onCreate() 메소드 내에서 코드로 화면 오리엔테이션을 지정해주는 방법입니다.
먼저 첫 번째로, Android Manifest 파일에 속성을 지정하는 방법입니다. 먼저 원하는 안드로이드 프로젝트의 AndroidManifest.xml 파일을 엽니다. 그리고 화면을 고정하기 원하는 액티비티의 이름을 찾아 아래 코드의 3번째(혹은 4번째) 열에 해당하는 코드를 추가합니다.
<
activity
android:name
=
"com.example.appname.ActivityName"
android:theme
=
"@style/AppTheme"
android:screenOrientation
=
"portrait"
//화면을 portrait(세로) 화면으로 고정하고 싶은 경우
android:screenOrientation
=
"landscape"
> //화면을 landscape(가로) 화면으로 고정하고 싶은 경우
</
activity
>
두 번째로, 액티비티 실행 시에 onCreate() 메소드 내부에서 지정해주는 방법입니다. 원하는 안드로이드 프로젝트의 해당 액티비티를 열어서 아래 코드의 6열(8열)에 해당하는 코드를 추가해 줍니다.
@Override
public
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// 화면을 portrait(세로) 화면으로 고정하고 싶은 경우
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
// 화면을 landscape(가로) 화면으로 고정하고 싶은 경우
setContentView(R.layout.main);
// setContentView()가 호출되기 전에 setRequestedOrientation()이 호출되어야 함
}
이제 해당 프로젝트를 실행하면 지정한 액티비티의 화면이 회전하지 않는 것을 볼 수 있습니다.
출처: https://proletariat.tistory.com/86 [프롤레타리아, IT에 범접하다.]
'Android' 카테고리의 다른 글
[링크] Android App RAM 사용량 측정(dumpsys) (0) | 2019.11.05 |
---|---|
[펌] Google Play의 64비트 요구 사항에 맞춰 앱을 준비하세요 (0) | 2019.07.10 |
[링크] Android Library Project 만들어서 jar 파일로 추출하기 (0) | 2019.01.29 |
[펌] 이클립스/Eclipse JAR 파일 만들기 (0) | 2019.01.29 |
[펌] 안드로이드(Android) Android library projects cannot be launched 에러발생시 처치 (0) | 2019.01.29 |