UI の基 礎知 識 8第 章
ユーザーインターフェースを記述するXMLは、次のソースコードのような要素で 構成されています。
・ ビュー名 : 何を表示させるか
・ 属性 : ビューに対する詳細な設定。ほとんどの場合、先頭に「android:」
の接頭辞が付く ・ 値 : 属性の設定値
以下、それぞれの要素について、詳しく見ていきましょう。
ビュー
Androidでは、各パーツのことを「ビュー(View)」と呼びます。よく使うビューは、
次のようなものがあります。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="XMLレイアウトの基礎"
android:textColor="#ff0000"
android:textSize="22sp" />
テキストを表示させる XML
ビュー名 属性 値
カッコを閉じる前に「/」が必要
〈Button〉
〈TextView〉
〈ImagetView〉
〈EditText〉
〈CheckBox〉
〈RadioButton〉
〈ProgressBar〉
〈SeekBar〉
ButtonやTextViewでは、文字列を変更したり、文字の大きさや色を変えてカ スタマイズすることは簡単です。また、ImageViewについても、画像リソースを変更 することでいろいろな画像を表示させることができます。
しかし、EditTextやCheckBox、RadioButton、SeekBarなどは、あらかじめ 青色がデザインとして入っています。これらのデザインは、「コードで実装できるデフォ ルトのデザイン」と理解しておいてください。もちろん違うデザインに変更する(カスタマ イズする)こともできますが、少しややこしくなりますのでもう少し慣れてきてから挑戦する のがいいでしょう。
属性
属性は、各ビューによって設定できるものが決まっています。
たとえば、テキストを表示するTextViewであれば、色(textColor)や大きさ(te xtSize)の設定ができますが、画像を表示するImageViewだと、それらの設定はあ りません。
各ビューに設定できる属性は、それぞれにおいてかなりの数があります。どのような 属性が指定できるかは、コードを書いている際に「android:」と入力すると、オートコ ンプリート機能によって指定可能な候補一覧が表示されますので、それを見ておくと よいでしょう(図14)。
ビュー名 説 明
Button ボタンを表示する
TextView テキストを表示する ImageView 画像を表示する
EditText テキストフィールド(文字入力エリア)を表示する CheckBox チェックボックスを表示する
RadioButton ラジオボタンを表示する ProgressBar プログレスバーを表示する
SeekBar シークバーを表示する
表1:よく使うビュー
UI の基 礎知 識 8第 章
値
値は、各属性によって設定できるものが決まっています。
これも、設定できるものが選べる場合は、属性と同じように候補一覧が表示されま すので、見ておくとよいでしょう(図15)。
主要なパーツについての説明
それでは、よく使うパーツを詳しく説明していきます。これらのパーツは、何も見なくて もXMLで作成できるようにしておくことが望ましいです。
・ボタン
・テキスト
・画像
・テキストフィールド
図14:「android:」まで入力すると、TextViewで指定可能な属性の候補が表示される
数値を指定するものは、候補には出 てきません。自分で値を入力しないと いけないので注意してください。
図15:TextViewのtextStyleという属性で、指定可能な値の候補が表示される
とはいえ、すべてを覚える必要はあり ません。 ADTではオートコンプリート 機能により候補一覧が表示されます ので、この機能はヒントとして積極的 に使っていきましょう。
■ボタン
ボタンを表示するときには、次のようなXMLを書きます。
デザインのカスタマイズを何もしていない、デフォルトの状態のこのボタンは、タップ すると色が変わり、「タップされた」という状態をユーザーにフィードバックします。
前述(P.41)のソースコード「テキストを表示させるXML」の4行目の、「android :text」という属性が、ボタン内に表示するテキストです。
2行目の「android:layout̲width」と3行目の「android:layout̲height」は、
ボタンだけではなくどのビューにも共通して必要な属性です。それぞれのビューが、
横方向(layout̲width)または縦方向(layout̲height)に対してどれぐらいの領
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
Button コンポーネント
図16:ボタン表示
通常時 指でタップ時