画面を横にしたときのレイアウト用リソースの利用
SDK の Android エミュレータで横向きにする
携帯端末は縦向き、横向きいずれの向きでも利用しますよね。特にソフトキーボードでは、 入力方法が楽な方向で持ち替えるなどもよくすることではないでしょうか。
Android SDK でアプリケーションを開発する時のエミュレータも、縦向き、横向きどちらの向きにも対応しています。
通常エミュレータは縦向きの画面で起動します。
そこで、Ctrl + F11 を押下することで、次のように横向き画面に切り替わります。
テストを実施する際には、縦横ちゃんとテストするようにしましょう。
横向き (ランドスケープ) 用のリソース定義
縦向き、横向きでレイアウトを変更するには、レイアウトを定義するXMLをそれぞれ別に持つことで対応できます。
縦向きはデフォルトで res/layout ディレクトリを参照します。一方、横向きの場合は res/layout-land ディレクトリを参照します。
例えば、縦向き用の res/layout/main.xml に対して、横向き用のリソース res/layout-land/main.xml を作ります。
この名前のディレクトリにXMLファイルを配置することで、自動的に横向きのときにこのリソースが利用されます。
ここでは land という名前を付けたディレクトリがランドスケープモード (landscape mode) として使われました。 このようにリソースディレクトリの名前によって、リソースの取得場所を切り替えることによって、多種多様なスクリーンをサポートするようになってます。 この場合の -land はリソースディレクトリ修飾子 (resource directory qualifier) といいます。
詳細についてはまた別のページで説明しますが、ここではランドスケープモードへの対応は、ディレクトリに -land と付けるということだけ、覚えて行ってください。