내 안드로이드 응용 프로그램을 세로 모드로만 실행하고 싶습니까?


358

내 안드로이드 응용 프로그램을 세로 모드로만 실행하고 싶습니까? 어떻게해야합니까?

답변:


778

매니페스트에서 모든 활동에 대해 이것을 설정하십시오.

<activity android:name=".YourActivity"
    android:configChanges="orientation"
    android:screenOrientation="portrait"/>

설명하겠습니다 :

  • android:configChanges="orientation" 하면 당신이 방향으로의 변화의 책임이 될 것이라고 안드로이드를 말한다.
  • android:screenOrientation="portrait" 기본 방향 모드를 설정합니다.

50
응용 프로그램의 모든 활동에 대해 "전역"방향을 설정할 수 있다면 좋지 않습니까? 모든 활동에 "세로"속성을 복사 / 붙여 넣기
Eduardo Coelho

63
설정하기에 충분android:screenOrientation="portrait"
까지

11
@EduardoCoelho 당신은 실제로 기본 클래스를 만들 수 있고 PortraitActivityonCreate 호출에서 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)이것을 확장하는 모든 활동은 회전하지 않습니다
Twinone

1
@Twinone : 다른 활동이 단순히 Activity확장되는 ListActivity반면 다른 활동이 단순히 확장하는 것처럼 다른 활동이 의 다른 하위 클래스에서 상속 받기를 원하는 경우 는 Activity어떻습니까?
RestInPeace 2016 년

3
@RestInPeace 그래, 좋은 지적이다. 그러나 그것은 내 생각이 틀린 것이 아닙니다. 다중 상속을 지원하지 않는 Java
일뿐입니다

57

Android Manifest File에서 <activity>해당 속성을android:screenOrientation="portrait"


2
Android에서 Sudio 3.6을 추가하려면 android : screenOrientation = "fullSensor"또는 android : screenOrientation = "unspecified"를 사용해야합니다. fullSensor "회전 끄기"를 설정했거나 전화를 이동 한 방향에 따라 방향이 변경되지 않음을 의미합니다. 지정되지 않음 회전이 켜져 있으면 해당 방향으로 만 유지되고 그렇지 않은 경우 전화기를 이동하는 방향에 따라 방향이 변경됩니다.
Kirguduck

24

두 가지 방법이 있습니다

  1. android:screenOrientation="portrait"매니페스트 파일의 각 활동에 추가
  2. this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);각 Java 파일에 추가 하십시오.

14
두 번째 옵션은 세로에서 시작할 때 활동을 다시 시작하는 끔찍한 부작용이 있습니다.
Joakim

4

매니페스트에서 :

<activity android:name=".activity.MainActivity"
        android:screenOrientation="portrait"
        tools:ignore="LockedOrientationActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

또는 : MainActivity에서

@SuppressLint("SourceLockedOrientationActivity")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

나는 얻는다 app/src/main/AndroidManifest.xml; lineNumber: 20; columnNumber: 50; The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound.. xmlns:tools="http://schemas.android.com/tools"루트 요소를 추가 하면 문제가 해결됩니다.
Żabojad

3

내가 알고있는 오래된 포스트. 방향이 바뀌거나 태블릿과 같은 경우에도 앱을 항상 세로 모드로 실행하기 위해 세로 및 가로 방향을 알 필요없이 장치를 올바른 방향으로 설정하는 데 사용되는이 기능을 설계했습니다. 기능은 장치에서 구성됩니다.

   private void initActivityScreenOrientPortrait()
    {
        // Avoid screen rotations (use the manifests android:screenOrientation setting)
        // Set this to nosensor or potrait

        // Set window fullscreen
        this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        DisplayMetrics metrics = new DisplayMetrics();
        this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);

         // Test if it is VISUAL in portrait mode by simply checking it's size
        boolean bIsVisualPortrait = ( metrics.heightPixels >= metrics.widthPixels ); 

        if( !bIsVisualPortrait )
        { 
            // Swap the orientation to match the VISUAL portrait mode
            if( this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT )
             { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); }
            else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); }
        }
        else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); }

    }

매력처럼 작동합니다!

주의 사항 : this.activity활동에 따라 변경 하거나 주 활동에 추가하고 this.activity;-)를 제거하십시오 .


-5

나는 사용한다

 android:screenOrientation="nosensor"

거꾸로 세로 모드를 지원하지 않으려는 경우에 유용합니다.


이것이 내가 생각하는 것을 수행한다면 실제로 화면을 세로로 강제하지는 않습니다.
Lassi Kinnunen

왜이 주석을 제거하지 않습니까! 그것은 이해가되지 않습니다
알렉산더 Zaldostanov

Android Manifest File에서 <activity>에 대한 속성을 추가하십시오. android : screenOrientation = "portrait"
Avinash Shinde

답변 해 주셔서 감사합니다. 도움이됩니다.
Md. Shofiulla
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.