Android 開発、向きを設定

静的に指定する場合

下記のようにAndroidManifest.xmlで指定する。

  • 縦固定
AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:screenOrientation="portrait">
  • 横固定
AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:screenOrientation="landscape">
  • 自動
AndroidManifest.xml
<activity
    android:name=".MainActivity"
    android:screenOrientation="unspecified"> <!-- 未指定でもOK! というか、普通は未指定 -->

動的に指定する場合

下記のように Activity#setRequestedOrientation を呼び出す。
呼び出した結果、実際に画面の向きが変わった場合はActivityが再生成される(android:onConfigChangesでorientation等を指定していなければ)。

  • 縦固定
MainActivity.java
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  • 横固定
MainActivity.java
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
  • 自動
MainActivity.java
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);