Androidで使えるGUIコントロールをピックアップ





Androidアプリを開発しようと思って、最初に画面仕様を考えるんですが、
Androidで使えるGUIコントロールって何があるの?…と思い一覧にしてみました。

Android GUI一覧
レイアウト
GUI名称 説明
AbsoluteLayout AbsoluteLayoutにViewを配置する際は、画面上の座標を直接することになる(例 x = 20, y = 30...)。部品毎に座標を指定する必要があるため、正直使い道がない。
FrameLayout 唯一つのViewを配置することができる。複数のViewを追加した場合は、古いViewは削除され新しいViewのみ表示される。
LinearLayout LinearLayoutのOrientationプロパティと、weightプロパティを使いこなせるか否で、驚くほどアプリの完成度が変わってくる。
OrientationをHorizontalにすると、追加するViewは全て横並びになる。Verticalにすると縦並びになる。又、子ビューのweghitを1にする事で、部品の並びを均等にすることができる。
RelativeLayout 包含するView同士を相対的に配置することが可能である。画面の上下左右に寄せたり、包含されるViewの上下左右に隣接してButtonなどを配置可能。レイアウトの中では特に使いやすく、極め細やかな設定が可能である。
TableLayout 感覚的にはHTMLのテーブルレイアウトと似ている。整列された画面を作る場合は有効であるが、レイアウト的には少し複雑になる。
ウィジェット
GUI名称 説明
SurfaceViews Viewクラスから独立した描画スレッドを立ち上げ管理することができる。ゲームのように、毎フレーム画面を更新するような場合に有効。
View 各種ウィジェットの基底クラス。サブクラスにはTextViewやEditTextクラスなどがある。View単体では余り使い道がなさそう。
WebView HTTP通信などを行いHTMLを表示するためのView。WebView単体でも簡易なWebブラウザとして機能する。

AnalogClock
アナログ時計を表示するウィジェット

AutoCompleteTextView
テキスト入力を補完する際に利用。

Button
アプリケーションでイベント発生させるための重要なウェジェット。ボタンをタッチした際にイベント発生させるにはOnClickListenerをセットしておき、onClick()で拾って処理したりなど。

CheckBox
チェックボックス。ListViewに組み込む事もあると思うが、そんな時はチェックボックスのフォーカスを外すと幸せになれるかも…

CheckBoxPreference
チェックボックスを含むPreferenceで、アプリの設定値を保存しておく場合は、利用価値有り。

CheckedTextView
TextViewにCheckBoxがくっついたウィジェット

Chronometer
経過時間を計測するコントロール。ストップウォッチを作る場合に使えそう。

DatePicker
年、月、日を表示する事ができるコントロール。ただし、AndroidSDK1.6では日本語ロケールで表示すると、月の部分が2桁表示になると1桁目が隠れてしまうバグがあるそうな・・・

DigitalClock
デジタル時計のウィジェット

EditText
文字入力する際に利用出来るコントロール。タップするとソフトウェアキーボードが飛び出す。他のウィジェットと違い、画面に表示した際は必ずフォーカスが当たる。ちょっと癖がある感じです。
ExpandableListView 蛇腹状に開閉するListView。ListViewのItemをクリックすると、子要素を表示してくれる。
Gallery 複数の画像を表示する際は便利なウィジェット
ListView 標準のListViewでは単一列、複数行でデータを表現できる。背景色を変えたり、文字のサイズを変える場合はAdapterをカスタマイズする必要がある。ウィジェットの中では一番利用頻度の高い。

ImageButton
Buttonではボタンの上下左右にしか画像を配置できませんでしたが、ImageButtonではsrcプロパティを使い、ボタンの真ん中に画像を配置することが出来ます。
ImageView srcプロパティに画像リソースを指定することで、簡易に画像を表示することができる。ImageViewを再描画したい場合は、invalidate()を使おう。Viewクラスのinvalidate()は仕様が変わったため、使わないほうが無難。

MultiAutoCompleteTextView
入力した内容から、文章の候補を表示する。

ProgressBar
プログレスバー。待ち時間が発生するときに利用します。

RadioButton
ラジオボタン。複数の選択肢から任意の要素を設定する場合に利用。

RatingBar
AnroidMarketで、アプリを評価する際に表示されるアレと同じものです。多分。

SeekBar
アプリケーション内のパラメーター値を設定する際に利用できそうです。例:音量の上げ下げなど。

Spinner
Windowsで言うところの、コンボボックスです。
ScrollView レイアウトに配置したViewなどが画面から垂直方向にはみ出る場合は、ScrollViewを使いましょう。注意点として、ScrollViewは一つのViewしか包含できない事。
Viewが複数の場合はレイアウト > ScrollView > レイアウトとする。

TextView
テキスト表示するためのコントロール

TimePicker
時、分を設定できます。DatePickerみたいなバグはありません。

ToggleButton
パラメーターのON/OFFを表現する際に利用できそうです。

Toast
画面下部に字幕でメッセージを表示します。
TwoLineListItem ListView内でひとつの行に、2行分のアイテムを表示したい場合はオススメ。

VideoView
動画を再生するときに利用します。
ZoomButton 画像の拡大、縮小コントロールです。