Androidで画面を縦方向・横方向などで固定するのはXMLを使えば簡単にできますが、開いた後の画面で固定させたい(つまり縦で開いたから縦固定、横で開いたから横固定)というふうにするにはどうしたらいいのかなと思って調べてみました。
// 現在の画面の向きを取得するために設定を取得
Configuration config = getResources().getConfiguration();
if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {
// 縦固定
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else if(config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
// 横固定
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
ActivityのonCreateで実行しておけば、固定化されます。
シェイクするアプリとかだと、シェイク中に画面の縦横が切り替わってメチャクチャになってしまうことがあったので、これで固定化しておけばとりあえず問題ないんじゃないかなと思います。
