AndroidでHelloWorld ウィジェット版

2010/2/19 35153hit

AndroidでAppウィジェットを作ろうと思って
まず手始めにHelloWorldウィジェットを作ってみた

ウィジェットって便利だよね

標準で検索ツールや時計などがインストールされているけれど
新たに便利でしゃれたウィジェットを追加するとイメージが大きく変わる。

豊富なガジェットはAndroidの魅力

ということで、今回はHello Worldと表示されるだけの
シンプルなウィジェットを作ってみる。

プロジェクトの作成


Eclipseを起動して
[File]-[New]-[Project]を選択

Project nameは hellowidget
Contentsは Create new project in workspace
User default locationにチェックを入れ
Build TargetはHT-03AをターゲットにするためにAndroid 1.6にする。

Application nameはhellowidget
Package nameはjp.android.widget
Create Activityはチェックオフ
Min SDK Versionは4
としてFinishを選択


Packageにエラーが出ていたので
[Project]-[Clean]で[Clean all projects]をチェックしてOK


設定ファイルの作成


Packageのhellowidget内にあるresを右クリックし
[New]-[Folder]を選択
[Folder name]をxmlと入力しFinishを選択


作成したxmlフォルダで右クリックし
[New]-[Other]を選択


[Android]-[Android XML File]を選択してNext

Projectはhellowidget
Fileはappwidgetprovider.xml
What type of resource would you like to create?は
AppWidget Providerにチェックを入れ
Finishを選択


appwidgetprovider.xmlが出来たらStructureタブの
XmlElementsの一覧よりAppWidgetProviderを選ぶ
Attributes for AppWidget Providerに次の値を入れる
Min width 146dip
Min height 72dip
Update period millis 0
Initial layout @layout/main
Config 空白

Min widthとMin heightはウィジェットの最小サイズを指定する。
ウィジェットのサイズは74dip単位で
かつ丸め処理時にサイズがはみ出さないように2dipずつ引いた値になる。
式にすると セル数x74-2
今回は高さ1 幅2サイズのウィジェットを作るので 
横74x2-2=146dip
縦74x1-2=72dipになる。
Update period millisは一定時間毎に処理を実行する行う場合、何ミリ秒単位で行うかを設定する。最小値は1800000
これ以上細かいタイミングで更新する場合はAlarmManagerを使う

今回は文字を表示するだけなので0(一定時間毎に処理しない)
Initial layoutは初期表示の画面で @layout/main
Config は設定画面で今回は設定画面を作らないので空白


Widgetの処理を作成する


HelloWidget\src\jp.android.widget\を右クリックし
[New]-[Class]で新しくクラスを作成する

Source folderは
hellowidget/src
packageはjp.android.widget
NameはHelloWidgetProvider
Modifiersはpublic
Superclassはandroid.appwidget.AppWidgetProvider
でFinishを選択


AndroidManifest.xmlの修正


PackageでAndroidManifest.xmlを選び
Applicationタブの中の
ApplicationNodesからhelloWidgetProvider(Receiver)を選び
右側に出てきた入力欄に
Name*へHelloWidgetProviderとセットする


ApplicationNodesからhelloWidgetProvider(Receiver)内のIntentFilter内のandroid.appwidget.action.APPWIDGET_Update(Action)を選び
Nameにandroid.appwidget.action.APPWIDGET_UPDATEをセットする


ApplicationNodesからhelloWidgetProvider(Receiver)内のandroid.appwidget.provider(Meta Data)を選び
右側に出てきた入力欄に
Nameへandroid.appwidget.provider
Resourceへ@xml/appwidgetprovider
とセットする

完成したAndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="jp.android.widget"

android:versionCode="1"

android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">



<receiver android:label="@string/app_name" android:name="HelloWidgetProvider">

<intent-filter>

<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>

</intent-filter>

<meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidgetprovider" />

</receiver>

</application>

<uses-sdk android:minSdkVersion="4" />

</manifest>


実行


メニューバーの[Run]-[Run]を選択すると
自動的に対象のデバイスへインストールされてプログラムが実行される。
対象のデバイスがエミュレータの場合、事前にエミュレータ環境を作っておくこと
参考Android開発環境構築 改訂版

Widgetはインストールされても、手動で画面に登録しないと表示されない。
画面上を長タッチして
「ホーム画面に追加」が出てきたら「ウィジェット」を選択する

hellowidgetを選択するとウィジェットがデスクトップに表示される。

前:カート耐久レース 次:お金をかけずに携帯修理

関連キーワード

[Android][Java][モバイル][IT]

コメント

名前:rie|投稿日:2011/05/31 01:32

今アンドロイドの勉強をしています。
探していた問題だったのでとってもとっても助かりましたww
有難うございましたww

名前:kenz|投稿日:2011/06/01 12:21

お役に立てて良かったです
Androidはいじるところがたくさんあるので開発しがいがありますよね
今は勉強会にて今まで手を付けていないところに手を付けてみようと色々触っています。
報告できる物がでたら順次ここにアップしていきますのでよろしくお願いします。

コメントを投稿する