画面の向きの制御。
Top > 画面の向き(ScreenOrientation)
画面の向き(ScreenOrientation)
Last-modified: 2010-08-04 (水) 00:27:34
アクティビティに対して画面の縦・横の固定や、センサーによる表示の切り替えを指定/取得できます。
* 画面の向きの設定
* 画面の向きの取得
画面の向きの設定 Edit
リファレンス:http://developer.android.com/guide/topics/manifest/activity-element.html#screen
画面の向きはAndroidManifest.xml内でActivityに対してandroid:screenOrientationで設定します。
下記が指定値と結果になります。
こちらの例ではあらかじめ縦、横で背景、ビューの位置が異なるレイアウトを用意しています。
モード 縦長表示 横長表示 説明
unspecified(デフォルト) land_tall.gif port_wide.gif システムが自動選択します。(デバイスによって異なる)
ユーザの操作(エミュレータではCtrl+F11)によって切り替わります
portrait(縦固定) land_tall.gif port_tall.gif 常に縦レイアウトを使用します
landscape(横固定) land_wide.gif port_wide.gif 常に横レイアウトを使用します
user land_tall.gif port_wide.gif 現在のレイアウトに従います
ユーザの操作(エミュレータではCtrl+F11)によって切り替わります
behind land_tall.gif port_wide.gif 親のアクティビティに従います
ユーザの操作(エミュレータではCtrl+F11)によって切り替わります
sensor センサーに従います
実機がないので試せていません
nosensor センサーを無視します。ユーザの操作に基づいて回転しない点以外は、unspecifiedを指定したのと同じ動きになります。
実機がないので試せていません
▲ ▼
画面の向きの取得 Edit
現在の画面の向きはActivityから下記のように取得できます。
Configuration config = getResources().getConfiguration();
// Landscape(横長)
if(config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast toast = Toast.makeText(this, "Landscape", Toast.LENGTH_SHORT);
toast.show();
}
// Portrait(縦長)
else if (config.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast toast = Toast.makeText(this, "Portrait", Toast.LENGTH_SHORT);
toast.show();
}
// Square(正方形) エミュレータではこの値は返って来ない。
else if (config.orientation == Configuration.ORIENTATION_SQUARE) {
Toast toast = Toast.makeText(this, "Square", Toast.LENGTH_SHORT);
toast.show();
}
コメント: &attachref; (^^)(^-^(^Q^(..;(^_-(--;(^^;(T-T(//(OO;&heart;☆&hatena;&tip; hintadv