【注意】記事中のソフトウエアの画面や操作は、記事執筆時点のバージョンのものです。最新バージョンでは異なっている場合があります。

 MainActivity.javaのプログラムを紹介した前のパートでは、アプリケーションの画面にテキストやボタンといった部品を表示する際、setContentViewメソッドを利用していることを説明しました。このsetContentViewメソッドの引数である「R.layout.activity_main」は、「layout」フォルダーにある「activity_main.xml」というXMLファイルを指していることも確認できました。

 そこで次に、このactivity_main.xmlの内容を見ていきましょう。

レイアウトファイルを確認する

 このactivity_main.xmlというファイルは、画面のレイアウトを定義したもので、リスト1のように記述されています。先頭行は(1)のRelativeLayout要素です。この要素は、相対的な位置を指定して部品を配置する相対レイアウトを意味しています。

リスト1 ●activity_main.xmlの内容。誌面で見やすいように適宜、改行している(以下、同じ)
リスト1 ●activity_main.xmlの内容。誌面で見やすいように適宜、改行している(以下、同じ)
[画像のクリックで拡大表示]

 相対レイアウトでは、タグ内で指定した要素(ボタンやテキストなどのことで、「View」や「ウィジェット」と呼びます)を、親のレイアウトまたは特定の要素を基準に配置していきます。

 (2)の2行は、親のレイアウトの余白を振り分ける比率を設定します。横幅(width)と縦幅(height)にそれぞれ「match_parent」が指定されているので、画面の幅いっぱいに表示するという命令です。

 (3)にある「android:padding~」という属性は、内側の余白を決めるものです。「@dimen/activity_vertical_margin」などと指定されているので、「res」フォルダーの「values」フォルダーにある「dimens.xml」に定義してある値を参照しています。

 なお、前述したようにAndroid Studioでは、「16dp」のように参照先の値が画面に表示されていることがあります。その場合は値をクリックすると、「@dimen/~」という実際の指定に変わります。

 dimens.xmlを開いてみると、リスト2のように定義されていることがわかります。activity_horizontal_marginとactivity_vertical_marginがそれぞれ「16dp」であると宣言されていますね。この値が余白として利用されているのです。

リスト2 ●dimens.xmlに記述されている内容
リスト2 ●dimens.xmlに記述されている内容
[画像のクリックで拡大表示]