ポップアップを行うウィジェットはAndroidにいくつか用意されています。
クラス | 概要 |
---|---|
PopupWindow | 柔軟な表示が可能なウィジェット。Androidのクラスライブラリでも内部的に使用されている。使用方法がほかと比べると面倒くさい |
Dialog | ダイアログのベースクラス |
AlertDialog | アラートのためのダイアログ |
ProgressDialog | プログレスバーを表示するダイアログ |
DatePickerDialog | 日付選択ダイアログ |
TimePickerDialog | 時刻選択ダイアログ |
Toast | 一定時間だけ表示されるトースト |
表4 ポップアップするウィジェット |
この中で覚えておくと便利なのは、Dialogです。Dialogは簡単な使い方ができる一方、高度な使い方もできる、使い勝手の良いウィジェットの1つです。一方、PopupWindowは使いづらいですが、きめ細かい制御が可能です。
ダイアログベースのプログレスバーもあり、先に紹介したプログレスバーよりもこちらの方が使うのは簡単です。
Androidアプリでは、動画を表示させることが非常に簡単にできます。VideoViewという動画を再生するウィジェット、動画の制御を行うMediaControllerというウィジェットがあらかじめ用意されています。
今回の例では、ソースコードはたったの15行です。自前のコードでは再生するファイルの指定以外何の制御もしていません。ファイルの指定はファイルパスまたはURIです。ちなみに、AndroidのVideoViewで再生が確認された動画フォーマットは3GPとMP4です。
Android SDKに付属するツールで、エミュレータで扱えるSDカードを作成できます。コマンドプロンプトを起動し、Android SDKの「tools」フォルダにパスを通します。その後、以下のコマンドでまずはSDカードのイメージを作成します。
mksdcard 64M android_sd.img
これで64MbytesのSDカードが作成できました。その後、以下のようにSDカードを使用する設定でエミュレータを起動します。
emulator ?sdcard android_sd.img
エミュレータが起動し終えたら、別のコマンドプロンプトを起動して、以下のコマンドを実行し、ファイルをSDカードに転送します。
adb push <file path> /sdcard
これでSDカードにファイルを転送し終えました。EclipseからSDカードを使用できるエミュレータを起動したい場合、Eclipseの[Debug Configurations]で、図3のようにコマンドラインオプションを指定します。
図3 [Debug Configurations]
ほとんどのイベントリスナーはViewに用意されているので、ほとんどのウィジェットが長押しやタッチのイベントを捕捉できます。より凝った動きのアプリを作りたいと思ったら、こうしたイベントを活用するのも有効です。
Androidには、たくさんの何かを表示するためのGalleryというウィジェットがあります。
「たくさんの何か」は、数とその種類を特に問いません。Galleryは最終的にViewとして表示するため、どんなものでもViewとして表現できればGalleryとして成立します。デモアプリでは見栄えが良いため、画像でギャラリーを作成しています。
デモアプリでは、画像のためのウィジェット、ImageViewとImageSwitcherを使用しています。
クラス | 概要 |
---|---|
ImageView | イメージを表示する一般的なウィジェット |
ImageSwitcher | 表示するイメージを、エフェクトを付けて切り替えられるウィジェット |
表5 イメージを表示するウィジェット |
ImageViewはGalleryに、ImageSwitcherは指定されたイメージを大きく表示するために使用しています。ImageSwitcherにはフェイドイン・フェイドアウトのエフェクトを指定しています。画面キャプチャでは、フェイドイン・フェイドアウトが伝わりにくいので、動作させて実際に見ていただければと思います。
そのほかウィジェットとしてRatingBarとSeekBarを紹介しておきます。
この両者は見た目や目的こそ違うものの、仕組みや使い方は同じです。両方ともリスナーを設定して、値が変更されたことを検知できます。
今回は、Androidのウィジェットをひとまず見てみました。Androidのウィジェットは数が多過ぎて、また、Webサービスなどと連動しているものもあり、今回だけではすべてを紹介できませんでした。
次回も引き続きウィジェット関連を説明します。次回注力して扱うのはレイアウトです。今回はウィジェットをただ並べただけですが、もっと細かい制御が可能であるということ、その制御方法を詳細に説明していきます。
Copyright © ITmedia, Inc. All Rights Reserved.