398

Androidアプリケーションをポートレートモードでのみ実行したいですか?どうやってやるの?

4

8 に答える 8

854

マニフェストで、すべてのアクティビティにこれを設定します。

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

説明させてください:

  • android:configChanges="orientation"あなたと一緒にAndroidに向きの変更に責任があることを伝えます。
  • android:screenOrientation="portrait"デフォルトの向きモードを設定します。
于 2010-09-16T04:54:41.910 に答える
64

Androidマニフェストファイルに、<activity>その属性を入力しますandroid:screenOrientation="portrait"

于 2010-09-16T04:55:50.957 に答える
27

2つの方法があります。

  1. android:screenOrientation="portrait"マニフェストファイルのアクティビティごとに追加
  2. this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);各Javaファイルを追加します。
于 2013-12-24T06:02:39.203 に答える
10

マニフェストで:

<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);
于 2020-03-27T07:37:27.257 に答える
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;-)

于 2014-03-13T10:33:26.307 に答える
0

これを試してください:(SDK23以降の場合)

AndroidManifest.xlmあなたの;を追加します

    <activity android:name=".YourActivity"
        android:screenOrientation="locked"/>

このような。

于 2021-08-04T14:45:07.627 に答える
0

あなたが望むようにあなたがタグで使うことができるnew SDkアンドロイドので:(24 and above)Manifest.xmlactivity

<activity
            android:name=".feature.main.MainActivity"
            ********* android:screenOrientation="locked" ******
            android:configChanges="uiMode"
            android:windowSoftInputMode="adjustPan"
            android:exported="true">

そしてそれはうまくいきます!

于 2021-11-17T11:11:07.033 に答える
-6

私が使う

 android:screenOrientation="nosensor"

逆さまのポートレートモードをサポートしたくない場合に役立ちます。

于 2013-12-22T05:45:24.600 に答える