第 3 章 ユーザーインターフェース 24
3.8 レイアウト
クトについてのメッセージが、その下に表示されるはずですので、スピナーの右端にある逆三角 形のボタンをクリックしてみてください。そうすると、ドロップダウンリストが表示されるはず ですので、選択されている項目以外の項目をクリックしてみてください。そうすると、スピナー で選択されている項目が変更されて、その下のメッセージも変化するはずです。
3.8. レイアウト 43 Project name linear
Application name リニアレイアウト Package name org.example.linear Create Activity LinearActivity
次に、レイアウトXMLを次のように書き換えてください。
レイアウトXMLの例 main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン1"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン2"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン3"
/>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ボタン4"
/>
</LinearLayout>
これで完成です。ボタン2とボタン3は、水平方向に並んでいるはずです。
3.8.5 テーブルレイアウト
テーブルレイアウトは、水平と垂直の両方向にウィジェットを整列させるレイアウト、つまり、
二次元の升目の上にウィジェットを並べることによって表の形を作るレイアウトです。
テーブルレイアウトにおいて、水平方向のウィジェットの並びは「行」(row)と呼ばれ、垂直 方向のウィジェットの並びは「列」(column)と呼ばれます。
行は、TableRowという要素型の要素を書くことによって作ることができます。この要素の子
供として、ウィジェットを作る要素を何個か書くと、それらのウィジェットから構成される行が できます。行を構成するウィジェットは、要素を書いた順番のとおりに、左から右へ並びます。
通常、レイアウトXMLでウィジェットを作るときは、
android:layout_width android:layout_height
という属性に属性値を設定する必要があるわけですが、行を構成するウィジェットを作る場合、
これらの属性に属性値を設定する必要はありません。
テーブルレイアウトは、TableLayoutという要素型の要素を書くことによって作ることができ ます。この要素型の要素の子供として、何個かのTableRow要素を書けば、それらのTableRow 要素によって作られた行から構成されるテーブルレイアウトができます。テーブルレイアウトを 構成する行は、要素を書いた順番のとおりに、上から下へ並びます。
TableLayout要素は、android:stretchColumnsという属性を持っています。これは、特定 の列の幅を可能な限り左右に広げる属性です。属性値として列の番号を設定すると、その番号の 列の横幅が可能な限り拡張されます(番号をコンマで区切ることによって、複数の番号を設定す ることもできます)。列の番号は、左から右へ向かって、0、1、2、… … というように与えられて います。
それでは、テーブルレイアウトを使ったアプリケーションを作ってみましょう。
まず最初に、次のようなプロジェクトを作成してください。
Project name table
Application name テーブルレイアウト Package name org.example.table Create Activity TableActivity
次に、レイアウトXMLを次のように書き換えてください。
レイアウトXMLの例 main.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
>
<TableRow>
<Button android:text="ボタン1"/>
<Button android:text="ボタン2"/>
<Button android:text="ボタン3"/>
</TableRow>
<TableRow>
<Button android:text="ボタン4"/>
<Button android:text="ボタン5"/>
<Button android:text="ボタン6"/>
</TableRow>
</TableLayout>
これで完成です。6個のボタンが、2行3列の表の形で並んでいるはずです。また、1番目の列
(中央の列)の幅が、可能な限り左右に拡張されているはずです。
3.8.6 絶対レイアウト
絶対レイアウトは、個々のウィジェットの絶対的な位置を指定することによってウィジェット を配置するレイアウトです。
ウィジェットの絶対的な位置は、座標を使って指定します。画面の座標系は、画面の左上の隅 が原点で、x軸は右向き、y軸は下向きです。
絶対レイアウトは、AbsoluteLayoutという要素型の要素を書くことによって作ることができ ます。
ウィジェットの座標は、AbsoluteLayout要素が持っている次の属性に設定します。
android:layout_x x座標。
android:layout_y y座標。
それでは、絶対レイアウトを使ったアプリケーションを作ってみましょう。
まず最初に、次のようなプロジェクトを作成してください。
Project name absolute Application name 絶対レイアウト
Package name org.example.absolute Create Activity AbsoluteActivity
次に、レイアウトXMLを次のように書き換えてください。
レイアウトXMLの例 main.xml
<?xml version="1.0" encoding="utf-8"?>