1page.title=UI の概要 2@jd:body 3 4 5<p>Android アプリのすべてのユーザー インターフェース エレメントは、{@link android.view.View} と {@link android.view.ViewGroup} オブジェクトを使ってビルドされています。 6{@link android.view.View} は、ユーザーが相互操作できる、画面上で何かを描画するオブジェクトです。 7{@link android.view.ViewGroup} は、インターフェースのレイアウトを定義するために、その他の {@link android.view.View}(と {@link android.view.ViewGroup})オブジェクトを保持するオブジェクトです。 8 9</p> 10 11<p>Android では、共通の入力コントロール(ボタンやテキスト フィールドなど)とさまざまなレイアウトモデル(線形レイアウトや相対レイアウトなど)を提供する {@link android.view.View} と {@link android.view.ViewGroup} サブクラスの両方が提供されています。 12 13</p> 14 15 16<h2 id="Layout">ユーザー インターフェースのレイアウト</h2> 17 18<p>アプリの各コンポーネントのユーザー インターフェースは、図 1 のように、{@link 19android.view.View} と {@link android.view.ViewGroup} オブジェクトの階層を使って定義されます。各ビューグループは、子ビューをまとめる非表示のコンテナであり、子ビューは UI の一部を描画する入力コントロールまたはその他のウィジェットです。この階層ツリーは、必要に応じて単純にまたは複雑にすることができますが、パフォーマンスの点では単純な階層ツリーが最適です。 20 21 22 23</p> 24 25<img src="{@docRoot}images/viewgroup.png" alt="" /> 26<p class="img-caption"><strong>図 1.</strong> UI レイアウトを定義するビュー階層の図。 27</p> 28 29<p>レイアウトを宣言するには、コードで {@link android.view.View} オブジェクトのインスタンスを作成してツリーのビルドを始めることができますが、レイアウトを定義する最も簡単で効率的な方法は XML ファイルを使用することです。XML では HTML のように、人が見える構造でレイアウトが提供されます。 30 31</p> 32 33<p>ビューの XML 要素名は、それが表す Android クラスによって決まります。<code><TextView></code> 要素は UI で {@link android.widget.TextView} ウィジェットを、<code><LinearLayout></code> 要素は {@link android.widget.LinearLayout} ビューグループを作成します。 34 35 36 </p> 37 38<p>たとえば、テキストビューとボタンを含む単純な縦レイアウトは次のようになります。</p> 39<pre> 40<?xml version="1.0" encoding="utf-8"?> 41<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 42 android:layout_width="fill_parent" 43 android:layout_height="fill_parent" 44 android:orientation="vertical" > 45 <TextView android:id="@+id/text" 46 android:layout_width="wrap_content" 47 android:layout_height="wrap_content" 48 android:text="I am a TextView" /> 49 <Button android:id="@+id/button" 50 android:layout_width="wrap_content" 51 android:layout_height="wrap_content" 52 android:text="I am a Button" /> 53</LinearLayout> 54</pre> 55 56<p>アプリでレイアウト リソースを読み込むとき、Android はレイアウトの各ノードを初期化して、他の動作の定義、オブジェクト状態の照会、レイアウトの変更をするのに使用できるランタイム オブジェクトにします。 57 58</p> 59 60<p>UI レイアウト作成のガイドについては、<a href="declaring-layout.html">XML レイアウト</a>をご覧ください。 61 62 63 64<h2 id="UIComponents">ユーザー インターフェース コンポーネント</h2> 65 66<p>{@link android.view.View} と {@link android.view.ViewGroup} オブジェクトを使用してすべての UI をビルドする必要はありません。 67Android では、コンテンツの定義に必要な標準的な UI レイアウトを提供する複数のアプリ コンポーネントが提供されます。 68これらの各 UI コンポーネントには、それぞれのドキュメントで説明されている固有の API(<a href="{@docRoot}guide/topics/ui/actionbar.html">アクションバー</a>、<a href="{@docRoot}guide/topics/ui/dialogs.html">ダイアログ</a>、<a href="{@docRoot}guide/topics/ui/notifiers/notifications.html">状態通知</a>など)があります。 69</p> 70 71 72