その場合は, 以下の様にすれば良い。
// 画面の向きを固定 public void fixDisplayOrientation(){ 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); } } // 画面の向きの固定を解除 public void unfixDisplayOrientation(){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); }
ここで, 画面の向きを取得するとき, config.orientation の値を使用。
Configuration.ORIENTATION_PORTRAIT なのか Configuration.ORIENTATION_LANDSCAPE なのかで判断する。
しかし, 画面の向きを設定するとき, は, setRequestedOrientation(int orientation) に与える引数の値は, Configuration.ORIENTATION_PORTRAIT や Configuration.ORIENTATION_LANDSCAPE ではなく, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT または ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE なので注意!
0 コメント:
コメントを投稿