AndroidManifest.xmlでactivityのscreenOrientation属性で指定する方法が一般的だと思う。
<activity ... android:screenOrientation="landscape" ...>
この指定は実行時に変更することができる。
縦長固定に変える
Activity#setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
横長固定に変える
Activity#setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
システムに決めてもらう
Activity#setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
「システムに決めてもらう」設定にしておくと、重力センサーなどに従って、自動的に自然な方向に回転したりする。
普通の時は自由に回転させておくけれど、ボタンを押したときには「その時の方向で固定」したいこともある。
public void lockScreenOrientation() { switch (getResources().getConfiguration().orientation) { case Configuration.ORIENTATION_LANDSCAPE: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case Configuration.ORIENTATION_PORTRAIT: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; case Configuration.ORIENTATION_SQUARE: // ここではどうしたらいい? break; } }
世の中には正方形のデバイスもあるらしい。
確かに横長でも縦長でもないけれど、正方形だとしてもデバイスの方向ってやつがあるはずでしょぅ
そう考えると、SQUAREっていう報告は来ないはず…
実機で試してみたいなぁー
あーもやもやする
0 件のコメント:
コメントを投稿