본문 바로가기

개발/Android

[안드로이드] 액티비티 화면 가로 또는 세로로 고정하기

앱을 출시하고, 주변 여러명의 폰으로 테스트 하다보니, 가로로 화면이 변경될 때 UI가 완전 뒤죽박죽이 되었다,,,

 

그래서 이러한 불상사(?)를 막기 위해서 액티비티 화면을 가로로 고정 또는 세로로 고정하여 화면을 기울여도 전환되지 않도록 하는 방법을 적용하였다.

 

방법은 두가지인데 둘 중 하나만 선택하여 적용하면 된다.

첫번째 방법 : AndroidManifest.xml 파일 수정하기

<activity android:name="com.example.test.ActivityName"

            android:theme="@style/AppTheme"

            android:screenOrientation="portrait" //액티비티를 portrait(세로)로 고정

            android:screenOrientation="landscape"> //액티비티를 landscape(가로)로 고정

        </activity>

두 번째 방법 : 코드에서 지정하기

 

onCreate() 메소드 내부에서 액티비티 실행 시 가로로 고정할 지 세로로 고정할 지 코딩을 통해 정하는 방법이다.

하기처럼 코드를 수정해주면 된다.

@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()이 호출되어야 함

    }

이제 액티비티의 화면이 고정되어 회전하지 않게 된다.