moxt

Just another Blog site

Androidで超シンプルなWidgetを作りたい

   

情報が少なくてちょっとつまづいたのでメモ。

目標

まずはホームスクリーン上に簡素なViewを表示する。
いきなりあれこれやろうとしても理解できないので。。

必要なもの

下記の4つが必要になる。

  • Widgetの見た目を定義するレイアウトファイル
  • Widgetのメタ情報を定義するAppWidgetProviderInfoオブジェクト
  • Widgetの状態をハンドリングするためのAppWidgetProviderオブジェクト
  • マニフェストファイルにAppWidgetProviderを追加する

次に、必要なファイルやオブジェクトの詳細を書いてゆく。

Widgetの見た目を定義するレイアウトファイル

https://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout

ドキュメントに書かれてる通り、res/layout以下にxmlファイルを配置すればOK。
たとえばこんな感じ。
TextViewにアプリ名を表示するだけのもの。

Widgetでは使用できるViewに限りがあるので注意する。
とはいえ、ListViewをはじめとした多くのViewが使える。
なので困ることはないと思う。
詳細はドキュメントで。

Widgetのメタ情報を定義するAppWidgetProviderInfoオブジェクト

オブジェクト、と書いているがjavaファイルを作る必要はない。
XMLファイルに必要な情報を書いてゆく。

こんな感じ。

プロパティに関する詳細は下記を参照する。

https://developer.android.com/guide/topics/appwidgets/index.html#MetaData

Widgetの状態をハンドリングするためのAppWidgetProviderオブジェクト

Viewを表示するだけなら具体的な処理の記述は必要ない。
が、一応下記のようなjavaファイルを用意しておく。

マニフェストファイルにAppWidgetProviderを追加する

先ほど作ったExampleAppWidgetProviderクラスについての宣言を追加しておく。

作ったWidgetを表示する

上記の4つの手続きが完了したらアプリを起動する。
これだけではWidgetは表示されない。
Widgetを追加するためにはホームスクリーンを長押し→Widget一覧から作ったWidgetを長押し→ホームスクリーン上に配置、という流れ。

作ったWidgetはこんな感じになった。

unnamed

青いやつね。
これで何もしない超シンプルなWidgetが完成。

 - Android

  • このエントリーをはてなブックマークに追加
  • follow us in feedly