2011年7月28日木曜日

AppWidgetの作成方法

Androidのホーム画面に貼りつけできるAppWidgetの作り方

1.レイアウト画面の作成
通常アプリ同様 layout/xml 以下にレイアウトを作成する

2. res/xmlフォルダに、appwidget-provider設定ファイルの作成

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:minWidth="72dip"
  android:minHeight="72dip"
  android:updatePeriodMillis="60000"
  android:initialLayout="@layout/レイアウトのXMLファイル(.xmlは不要)"
/>

○サイズ指定(単位はdip)
・n dip = 74 x n - 2
・nはブロック数。nは1~4まで

・更新間隔(android:updatePeriodMillis)
・30分以下は30分として扱われる
・ミリ秒間隔で、onUpdate()が呼ばれる
・バッググラウンドでも更新が発生する
・0を指定すると、onUpdate()メソッドは一度だけ呼ばれる。
onUpdeteで呼ばれると、インスタンスが再生成されることに注意。
パラメータは、static にすれば保持できる

3.AndroidManifest.xmlの編集

<receiver android:name="クラス名" android:label="アプリ名">
  <intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
  </intent-filter>
  <meta-data android:name="android.appwidget.provider" android:resource="@xml/設定用XMLファイル(.xmlは不要)" />
</receiver>

4.コードを記述
AppWidgetProvider を継承したクラスを作成する


public class WordsWidgets extends AppWidgetProvider {

 @Override
 public void onEnabled(Context context) {
  super.onEnabled(context);
 }

 @Override
 public void onUpdate(Context context, AppWidgetManager appWidgetManager,
   int[] appWidgetIds) {
  super.onUpdate(context, appWidgetManager, appWidgetIds);
 }

 @Override
 public void onDeleted(Context context, int[] appWidgetIds) {
  super.onDeleted(context, appWidgetIds);
 }

 @Override
 public void onDisabled(Context context) {
  super.onDisabled(context);
 }

 @Override
 public void onReceive(Context context, Intent intent) {
  super.onReceive(context, intent);
 }
}

0 件のコメント:

コメントを投稿