主な属性
ここで、各画面部品に共通で使われる主な属性をいくつか紹介しましょう。
android:id
この画面部品のIDを設定します。すべての部品に記述する必要はありませんが、IDが必要な場合は記述します。その書き方は独特で、「@+id/…」のように記述します。こう記述することで、アクティビティ(Javaプログラム)内で「…」の名前で部品を取り出すことができます。例えば、リスト2 activity_view_sample.xmlの(1)だと「@+id/etInput」という属性値なので、「etInput」という名称で取り出します。これに関しては次回以降解説していきます。
android:text
この画面部品が表示されるときの文字列を設定します。ただし、先述の通り、表示文字列は直接記述せずにstrings.xmlに記述します。strings.xmlに記述された文字列とこの画面部品とを紐づける方法が「@string/…」という記述です。例えば、リスト2 activity_view_sample.xmlの(2)だと「@string/tv_msg」という属性値ですので、strings.xmlの<string>タグのname属性が「tv_msg」の文字列「お名前を入力してください。」が表示されます(リスト1 strings.xmlの(2))。
android:layout-width/height
この属性は、その名の通りwidthが部品の幅、heightが高さを設定します。すべての画面部品に記述する必要があります。この属性値として、例えば、100dpのような数値を記述してもいいですが、よく使われるのが、「wrap_content」と「match_parent」です。「wrap_content」は、その部品の表示に必要なサイズに自動調整します。一方、「match_parent」は、親部品のサイズいっぱいまで拡張します。
[Note]単位
Androidアプリで数値を指定する場合、単位としてpxは使用しません。これは、pxは画面解像度に依存し、端末ごとに解像度が違うAndroidでは不向きだからです。代わりに、dpとspを使います。使い分けですが、レイアウトやビューの設定にはdpを、テキストサイズの設定にはspを使います。
android:layout_marginとandroid:padding
画面部品の余白を設定する属性です。設定する余白の性質で、marginとpaddingに分かれますが、これらはAndroid独自のものではなく、様々なところで使われています。
marginは部品の外側の余白、paddingは部品の内側の余白となります。ただ、この違いは言葉よりも、図で理解した方がいいでしょう。
今回のサンプルではpaddingは登場していませんが、marginがどのように使われている一部図示したのが以下です。
次回以降のサンプルにpaddingも登場しますが、画面部品サンプルアプリではmarginとpaddingがわかりやすいようにandroid:background属性で各部品に色を付けています。
まとめ
今回は、Androidアプリ開発の第1弾として、画面の作り方の基本を解説してきました。次回も、引き続き画面の作り方を解説していきます。このサンプルにコードを追加することで、LinearLayoutの使い方、他のビュー部品タグを紹介していきます。