<< Android-Note
画面向きの切り替え
画面の向きをコード中から切り替えるには現在の画面の向きを取得し、その値に応じて画面の向きを回転させます。
例えば、ボタンが押されたら画面を逆に回転させたい場合は次のようなコードを書きます。
public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button rotateButton = (Button)findViewById(R.id.rotate_button); rotateButton.setOnClickListener(new View.onClickListener() { public void onClick(View v) { Configuration config = getResources().getConfiguration(); if(config.orientation == Configuration.ORIENTATION_LANDSCAPE){ setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //もし横向きなら縦向きに回転 }else if(config.orientation == Configuration.ORIENTATION_PORTRAIT){ setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //もし縦向きなら横向きに回転 } } }); } }
それぞれの値の意味は次の通りです。
定数名 | 意味 |
---|---|
ORIENTATION_LANDSCAPE | 横長方向固定 |
ORIENTATION_PORTRAIT | 縦長方向固定 |
setRequestOrientationメソッドに横か縦のどちらかの値を渡せばその方向に画面が変わります。
ただ、この方法で画面を回転させると画面が固定されてしまい、その後はコード中からしか画面向きを変更できなくなります。
もし、画面の固定をなくす場合は次のようにSCREEN_ORIENTATION_UNSPECIFIEDを値に渡します。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
© Kaz