Archive for Java

Android Widget 日時&電池容量

アイキャッチ画像は、北陸の美少女のぶらっくすわんさんですw

 

 

こちらのサイトで公開されているコードを基に、同類のものを作ってみました。

群衆三世
40hくらいでデジタル時計ウィジェットを作った話。
http://gunsyu3.hatenadiary.jp/entry/20111105/1320465848

 

device-2015-10-29-205248s

最初は知識不足で、全く歯が立ちませんでしたが、2週間ほど、Widget と格闘していたので、ようやく内容がある程度は理解できました。

 

1.manifests > AndroidManifest.xml

 

2.java > com,tottemohimadesi.widgettimer01 > WidgetTimer01.java

 

3.res > layout > widget_main.xml

 

4.res > values > strings.xml

 

5.res > xml > widget.xml

6.res > drawable

Folder

 

以下、Widget 作成のポイント概要ですw

 

Widgetの作り方

1. Widgetに必要なもの(一般アプリの様なActivity.javaは不要)

A. レイアウトを定義したXMLファイル
(app > res > layout > widget_main.xml)

B. Widgetの描画サイズや更新時間などを記述したXMLファイル
(app > res > xml > widget.xml)

C. 実際の処理を行うAppWidgetProviderクラスを継承したクラス
(app > java > pakage > WidgetXxxxx.java)

D. AndroidManifestファイル
(app > manifests > AndroidManifest.xml)

2-A. レイアウト作成

使用することができるレイアウトが限定されている。

・Linearlayout

・FrameLayout

・RelativeLayout

2-B. 設定ファイル作成

設定ファイルに記述すべき項目は4つある。

・ android:minWidth:Widgetの幅(単位:dip)
dip = (占有するセル数 x 74dip) – 2dip

・ android:minHeight:Widgetの高さ(単位:dip)
dip = (占有するセル数 x 74dip) – 2dip

・ android:initialLayout:Widgetの初期レイアウト

・ android:updatePeriodMillis:Widgetの更新間隔(単位:ms)
ただし0の場合は更新しない

2-C.AndroidManifest.xml

<reciver>

・android:name→AppWidgetProviderを継承したクラス名を記述

・android:label→ウィジェットの一覧に表示される名前

<intent-filter>

・<action>タグに更新イベントを受け取れることを
示すAPPWIDGET_UPDATEを記述

<meta-data>

・android:nameにはappwidget.provider、android:resourceにAppWidgetの設定ファイルを指定

2-D.AppWidgetProviderクラスを継承したクラス

・Widgetもライフサイクルを意識する必要がる。

・Widgetは複数起動することができるが、1つ目の起動時に
onEnabled()が呼び出され、その後すぐにonUpdate()が
呼び出される。
そして、もう1つWidgetを起動すると、onEnabled()は
呼び出されずにonUpdate()がすぐに呼び出される。

・起動しているWidgetを終了させると、onDeleted()が呼び出される。

・起動している全てのWidgetを終了させると、onDisabled()が
呼び出される。