この記事について

Androidアプリの画面の向きの設定する方法。
横向き設定や、縦向き設定に固定にする方法メモです。

環境

  • Android Studio 3.5.1
  • Java
  • kotlin 1.3.50

参照ページ

Android developers

設定方法

applicationとactivityの両方の設定が必要なようです。
AndroidManifest.xmlファイルの修正だけで解決する方法と、
設定によっては、プログラム 上でも修正する必要があります。

片方しか紹介していないサイトが多いようですが、私の端末では反映されませんでした。

AndroidManifest.xmlファイルの修正

AndroidManifest.xmlapplication欄に以下を追加します。

そして
Activityも同様の設定をできます。
Activityに設定した場合、後述のJavaファイルの修正は不要だと思います。
すべてのActivityに設定する必要があると思います。

縦向き固定に設定したい場合は以下。

縦向き固定
<application
    ...
    android:screenOrientation="portrait"
    ...
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait">
        <intent-filter>
                <action android:name="android.intent.action.MAIN" />
        ....

横向き固定に設定したい場合は上記portraitlandscapeに設定。

横向き固定
android:screenOrientation="landscape"

Activityプログラムファイルの修正

AndroidManifestでactivityの修正をしなかった場合、以下の設定も必要です。

ActivityファイルのonCreateに以下を追加します。

縦向き固定
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

横向きの場合は以下です。

横向き固定
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

kotlinプログラムの場合以下です。

kotlinの縦向き固定
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

向きの設定は以上です。