このページの本文へ

前へ 1 2 3 4 次へ

これで作れる! Androidのアプリケーション ― 第4回

Androidアプリを構成する「アクティビティ」を実際に作る

2010年07月22日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

画面の配置を決めるための「ViewGroup」

 前回(関連記事)解説したようにAndroidのアプリケーションは、アクティビティと呼ばれるオブジェクトから作られています。このアクティビティは、アプリケーションの画面に相当し、XMLで記述した画面を読み込んで表示します。今回はアプリケーション開発の基本となるこのアクティビティの作り方を解説します。

 このためには、Androidが提供するGUIエディター(レイアウトエディター)の使い方などをマスターしておく必要があります。

 アクティビティが持つ画面は、Viewと呼ばれるクラス(オブジェクト)です。レイアウトファイルには、このビューを1つだけ含むことができます。1つではなんにもできないと思われるでしょう。しかし実際には、ビューには内部に複数のビューを含むことができる「ViewGroup」というビューがあるので、これを使うことで実質的に複数のビューを含むことができます。

Activityの表示は単体のビューだが、中に複数のビューを格納できるViewGroupを使って階層構造を作る。ViewGroupには内部のビューを自動的に配置するLayoutと呼ばれるものがある。この中にテキストや入力ボックス、ボタンなどのビューを入れてActivityのビューを作る

 このViewGroupには、以下のようなものがあります。

LinearLayout:縦または横に内部のビューを配置する
TableLayout:表形式でビューを配置
RelativeLayout:ビューの相対位置を指定して配置
AbsoluteLayout:絶対座標を指定して配置
FrameLayout:枠を空けるためのレイアウト

 このほかにViewGroupのサブクラスには「AdapterView」「SlidingDrawer」がありますが、使い方がちょっと違うので、ここでの説明は省略します。

 これらのクラスにはボタンなどの部品を配置するという役割があり、このために「Layout」というキーワードがあります。Androidに限らず、画面サイズが固定されていてはハードウェアの変化に対応することが困難ですし、製品のバリエーションが作りにくくなります。またAndroidは、本体の縦/横位置で表示の向きを切り替える機能もあります。この場合、解像度は同一でも見かけ上の縦横の解像度は変化します。

 このように解像度が変化する場合、ボタンやテキスト入力欄のようなものを、絶対座標で配置することはできません。解像度に合わせて、部品の位置やサイズを変化させる必要があります。このために使われる部品が「●●Layout」と呼ばれるクラスです。これらは、一定のルールで内部の部品を並べるようになっています。

 一番使うと思われるのが「LinerLayout」です。これは、内部に配置されたビューを縦または横に並べるものです。ただし1つのLinerLayoutは、縦または横のどちらかの方向にしか並べることはできません。このため、複雑な配置を行なうには、これを入れ子にします。

 たとえば、ボタンを2つ横に並べたければ、方向を横方向に設定したLinerLayoutの中にボタンを置き、このボタンの下にテキスト欄を並べたければ、外側に方向を縦にしたLinerLayoutを置きます。このような入れ子を作ることで、複雑な画面でも構成することが可能です。

 ほかにもいくつかのレイアウトクラスがありますが、まずは、LinerLayoutの使い方を覚えれば十分です。他のレイアウトに関しては、実際に使う必要があるときにリファレンスを参照してください。

実際に画面に配置する部品

 このレイアウトの中に配置するビューは「widget」と呼ばれるクラスです。widgetは、Viewのサブクラスのうち、ユーザーインターフェースの部品となるものです。widgetとして多くの部品が定義されていて、その中には、ボタンやテキスト入力欄のような簡単なものから、メディア再生を制御するものなどさまざまなものがあります。前述のレイアウトもwidgetの1種です。このため、レイアウトの中にさらにレイアウトを入れて、ボタンなどの他のwidgetと同じように扱わせることができるわけです。

 実際に利用できるwidgetは、Android developerのサイトにあるリファレンスページにあります。

前へ 1 2 3 4 次へ

この連載の記事

注目ニュース

最新記事

ASCII.jp特設サイト

ASCII.jpメール デジタルMac/iPodマガジン

ASCII.jp RSS2.0 配信中

ピックアップ

富士通パソコンFMVの直販サイト富士通 WEB MART