GUIの部品を並べてみる

2013年5月2日


Androidのタブレットで作ったHello, worldに、いろいろなGUIの部品を追加して遊んでみました。

EclipseでGUIの部品を追加してみる

前回作ったEclipseで作ったAndroidアプリのプロジェクト「HelloWorld」では、「Hello, world」というメッセージを表示する画面が1つ表示されました。

この画面に表示される要素を増やしてみます。

Androidでは、画面のユーザインターフェース(GUI)は、XMLファイルで定義することになっています。

ちょうど、ホームページをHTMLファイルで書くように、XMLファイルで、画面のどこにボタンやテキスト入力枠を置くかを決めることになります。

Eclipseには、XMLファイルを直接書くのは面倒という人のために、GUIの部品をお絵かきツールのように配置できる機能があります。

画面構成をお絵かきすると、自動的にXMLファイルを更新できる、優れた機能です。

res/layout/activity_main.xmlをダブルクリックすると、次のような編集画面になります。

EclipseのGUI編集画面
EclipseのGUI編集画面

画面の左側には、ボタンやテキスト入力枠など、画面に配置できる部品が並んでいます。

画面の中央には、タブレットの画面イメージが表示されています。

左側から部品を選び、中央のタブレット画面にドラッグアンドドロップすると、タブレットの画面に部品を追加できます。

こんなふうに配置してみました。

少々ゆがんだ配置になっていますが、まずはよしとしましょう。

作ったアプリを実行する

タブレットとパソコンがUSBケーブルでつながっていれば、Eclipseの実行ボタンを押せば、変更したアプリをタブレットで実行できます。

Eclipseの実行ボタン
Eclipseの実行ボタン

さっそく実行した結果がこちらです。

アプリの実行画面
アプリの実行画面

ちなみに、Androidでは、テキスト入力の枠で、音声入力の機能を利用できます。

タブレットの前で話したことが、そのままテキスト入力の枠に書き込まれていく、先進的な機能です。

テキスト入力の枠とボタンがあるだけのアプリですが、これだけで、音声入力を楽しめるというのも、面白いことでしょう。

音声認識の様子
音声認識の様子

この音声認識機能では、音声をタブレットで認識しているのではなく、Googleのサーバに音声データを送って、Googleのサービスとして、文字列に変換しているそうです。

Googleのサーバには、音声認識の処理で使った私の声が保存されているかもしれません。

この音声データを使って、いつのまにか私そっくりの声で話すアンドロイド(人造人間)が作られたらどうしようか、などと少々不安もありますが、今のところ、その手の問題は発生していません。

XMLファイルでGUIの部品を追加してみる

タブレットのGUIのデザインは、XMLファイルを直接編集して行うこともできます。

先ほどのEclipseの画面は、下のほうに"activity_main.xml"というタブがあるので開いてみます。

画面に、XMLのテキストファイルが表示されます。

XMLによるGUIの定義
XMLによるGUIの定義

ここで表示されたテキストは、先ほどドラッグアンドドロップをした画面("Graphical Layout"のタブをクリックすれば表示されます)で編集したGUIのデザインを、XMLファイルとして表示したものです。

何だか難しそう、と思われるかもしれませんが、あとでプログラムのロジックを作るためには、XMLファイルの書き方を知っておく必要があります。

このXMLファイルでは、以下のようなことを決めています。

ちなみに、XMLファイルの書式や内容が間違っていると、アプリを起動したとたんに暴走してしまいます。あからさまなエラーがある場合は、EclipseがXMLファイルの中で下線を引いて指摘してくれたりもしますが、必ずしも適切なアドバイスとならないことがあるので、気をつけて書いたほうがよいでしょう。

ここまでの作業で、GUIの部品を画面に配置しましたが、プログラムとしてのロジックがないため、アプリとして何もできません。

GUIの部品と連携するプログラムを追加すれば、ボタンを押すと表示が変わるような、簡単なロジックであれば、比較的すぐに実現できるようになります。


杉原俊雄のホームページAndroidアプリ開発メモ(もくじ)

(c) 2013 Toshio Sugihara. All rights reserved.