Hello Widget! (1) 最小構成のWidget
Androidを持ち始めてそろそろ1年と半年だけど,
正直しっかりとWidgetを使い始めたのは最近。
作ってみた経験が無かったので,
とりあえずHello WorldなWidgetを作ってみようと思います。
Hello worldプログラムはHello Worldって表示するだけで,何もしない。
だから今回つくるWidgetもとりあえず,
ホーム画面に置けて,Hello Widget Worldって書いてある。
それだけの最小公正なWidgetを作ってみたいと思います。
Eclipseで,普通のアプリケーションを作るようにプロジェクトを作成
パッケージ名:com.rmstar.hellowidget
プロジェクト名:HelloWidget
まずは,Widgetのレイアウトを定義。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FF777777" > <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_margin="10dip" android:background="#FFFFFFFF" android:gravity="center" android:text="@string/hello_world" android:textColor="#FF000000" android:textSize="12sp" /> </RelativeLayout>
widgetのホーム画面上でのサイズ,更新間隔,レイアウト指定をするファイルを作成。
res/xml/hello_widget.xml
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="@layout/hello_widget_layout" android:minHeight="72dip" android:minWidth="72dip" android:updatePeriodMillis="0" > </appwidget-provider>
マニフェストファイルを編集。
Activityなし。
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.rmstar.hellowidget" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <receiver android:name=".HelloWidgetProvider" android:label="@string/widget_name" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/hello_widget" /> </receiver> </application> </manifest>
やっと,Javaの編集。
だけど空っぽ。
src/com/rmstar/hellowidget/HelloWidgetProvider
package com.rmstar.hellowidget; import android.appwidget.AppWidgetProvider; public class HelloWidgetProvider extends AppWidgetProvider{ }
これと各種サイズのアイコンic_launchar.pngと,
文字列定義ファイルstrings.xmlを書き換えて,不要な物は消しました。
res/values/strings.xml
<resources> <string name="app_name">HelloWidget</string> <string name="hello_world">Hello\nwidget\nworld!</string> <string name="widget_name">HelloWidget</string> </resources>
実機につなげて,Eclipseで実行するも応答なし。
えっ?
出てこない。
そりゃそうでした。
Widgetなんで。
Widget選択画面で普通にありました。
HelloWidgetが。
うっかり。
とりあえず,最小構成
HelloWorldがでるだけのWidgetはできました。
それではまた会えることを祈りつつ。