1. ホーム
  2. アンドロイド

[解決済み】Android:タブレットでは縦向きと横向きを許容するが、電話では縦向きを強制する?

2022-04-10 13:34:15

質問

タブレットは縦にも横にも表示できるようにしたいのですが(sw600dp以上)、スマホは縦にしか表示できないようにしてほしいです。条件付きで向きを選択する方法が見当たりません。何かいい方法はないでしょうか?

解決方法は?

を使った良い方法があります。 リソース サイズ修飾子 .

このboolリソースをres/valuesにbools.xmlなどとして置く(ここではファイル名は重要ではありません)。

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <bool name="portrait_only">true</bool>
    </resources>

これをres/values-sw600dpとres/values-xlargeに入れました。

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <bool name="portrait_only">false</bool>
    </resources>

参照 この補足の回答 Android Studioでこれらのディレクトリとファイルを追加する方法については、こちらを参照してください。

そして、ActivityのonCreateメソッドで、次のようにします。

    if(getResources().getBoolean(R.bool.portrait_only)){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }

横幅最小方向が600dp以上の端末、Android 3.2以前の端末(基本的にタブレット)ではx-largeは通常通りの動作となります。 センサーとユーザーロックされた回転などに基づき . それ以外のもの(電話、ほとんど)は縦向きのみになります。