画面を横にしたときのレイアウト用リソースの利用

SDK の Android エミュレータで横向きにする

携帯端末は縦向き、横向きいずれの向きでも利用しますよね。特にソフトキーボードでは、 入力方法が楽な方向で持ち替えるなどもよくすることではないでしょうか。

Android SDK でアプリケーションを開発する時のエミュレータも、縦向き、横向きどちらの向きにも対応しています。

通常エミュレータは縦向きの画面で起動します。

Android エミュレータの横向き

そこで、Ctrl + F11 を押下することで、次のように横向き画面に切り替わります。

Android エミュレータの横向き

テストを実施する際には、縦横ちゃんとテストするようにしましょう。

横向き (ランドスケープ) 用のリソース定義

縦向き、横向きでレイアウトを変更するには、レイアウトを定義するXMLをそれぞれ別に持つことで対応できます。

縦向きはデフォルトで res/layout ディレクトリを参照します。一方、横向きの場合は res/layout-land ディレクトリを参照します。

例えば、縦向き用の res/layout/main.xml に対して、横向き用のリソース res/layout-land/main.xml を作ります。

Android ランドスケープ用のリソース定義

この名前のディレクトリにXMLファイルを配置することで、自動的に横向きのときにこのリソースが利用されます。

Android ランドスケープ用のリソース定義

ここでは land という名前を付けたディレクトリがランドスケープモード (landscape mode) として使われました。 このようにリソースディレクトリの名前によって、リソースの取得場所を切り替えることによって、多種多様なスクリーンをサポートするようになってます。 この場合の -land はリソースディレクトリ修飾子 (resource directory qualifier) といいます。

詳細についてはまた別のページで説明しますが、ここではランドスケープモードへの対応は、ディレクトリに -land と付けるということだけ、覚えて行ってください。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Android 開発入門