フォトフレームアプリ (1/4)
昨年12月中旬から、年賀状の宛名印刷とそれに関連した LibreOffice Base の調べ物などをしていました。それも一段落したので、今日から「Androidアプリ開発」を再開します
今週は、
の
フォトフレームアプリは LESSON 28~31 の4回シリーズです。このブログのタイトル末尾の「(1/4)」は4つの LESSON のうちの1つ目の意味です。フォトフレームは実際に作ってみたいアプリなので、ゆっくり進めたいと思っています。
LESSON 28 で遭遇したエラーは既出の下記6点で、今までどおり対策しただけです。
(1) constructor CursorAdapter(Context, Cursor) の deprecated
(2) stopManagingCursor(Cursor) の deprecated
(3) managedQuery(Uri, String, String, String, String) の deprecated
… 対策) 以上3つの対策は 2014/11/9(日) のブログに記載のとおり
(4) getLastNonConfigurationInstance() の deprecated
… 対策) 2014/11/17(月) のブログに記載のとおり
(4) ターゲット API が 11 (Android 3.0) にいつの間にか切り替わる
… 対策) project.properties ファイルの "target=android-11" 末尾を 16 に書き換え
(5) Call requires API level 3 (current min is 1): ...以下省略...
… 対策) Project → Clean 実行
(6) ソースコードのエラー修正候補の提示中に SIGSEGV で異常終了
… 対策) Eclipse 再起動
今回のお題であるフォトフレームは「ウィジェット (Widget)」です。
このフォトフレームウィジェット(アプリ?)をエミュレータで実行すると、前回の絵日記アプリが起動しました。「あれ? ウィジェットじゃないの?」と戸惑いました
前回との違いは、左上に表示されるアプリの名称が "Chapter08" になっているだけ。
とりあえず、上記スクリーンショットの通り、2つの画像を絵日記に追加してみました。
ウィジェットの一覧を確認するため、Android エミュレータ上でホームに移動して、
をクリックしました。
"WIDGETS" タブをクリックしてウィジェットの一覧に移動します。
さらに1枚ページをめくります。
すると、フォトフレームのウィジェット"Chapter08widget" が左上にありました
これを長押ししてホームに設定すると、こんなふうに絵日記に登録したものと同じ画像がホームに常時表示されます
ここでは2回設定の操作を繰り返して、2つのウィジェットを設定しました。
ウィジェットに表示される画像は30分経過すると入れ替わると本に書いてありますが、それも確認できました。正確に 30分かどうかまでは計っていませんが。
今回、自分なりに少し頭を使ったのは、ウィジェットの名称を変更したことです。
サンプルコードではアプリと同じ "Chapter08" でした。それを、ウィジェット一覧のスクリーンショットをよく見ると分かる通り、"Chapter08widget" に変更してみました。
この変更は、文字列のリソース
res/values/strings.xml:
AndroidManifest.xml:
今週は、
の
LESSON 28 フォトフレームアプリの画面を作ろう
を動かしました。フォトフレームアプリは LESSON 28~31 の4回シリーズです。このブログのタイトル末尾の「(1/4)」は4つの LESSON のうちの1つ目の意味です。フォトフレームは実際に作ってみたいアプリなので、ゆっくり進めたいと思っています。
LESSON 28 で遭遇したエラーは既出の下記6点で、今までどおり対策しただけです。
(1) constructor CursorAdapter(Context, Cursor) の deprecated
(2) stopManagingCursor(Cursor) の deprecated
(3) managedQuery(Uri, String, String, String, String) の deprecated
… 対策) 以上3つの対策は 2014/11/9(日) のブログに記載のとおり
(4) getLastNonConfigurationInstance() の deprecated
… 対策) 2014/11/17(月) のブログに記載のとおり
(4) ターゲット API が 11 (Android 3.0) にいつの間にか切り替わる
… 対策) project.properties ファイルの "target=android-11" 末尾を 16 に書き換え
(5) Call requires API level 3 (current min is 1): ...以下省略...
… 対策) Project → Clean 実行
(6) ソースコードのエラー修正候補の提示中に SIGSEGV で異常終了
… 対策) Eclipse 再起動
今回のお題であるフォトフレームは「ウィジェット (Widget)」です。
このフォトフレームウィジェット(アプリ?)をエミュレータで実行すると、前回の絵日記アプリが起動しました。「あれ? ウィジェットじゃないの?」と戸惑いました
前回との違いは、左上に表示されるアプリの名称が "Chapter08" になっているだけ。
とりあえず、上記スクリーンショットの通り、2つの画像を絵日記に追加してみました。
ウィジェットの一覧を確認するため、Android エミュレータ上でホームに移動して、
"WIDGETS" タブをクリックしてウィジェットの一覧に移動します。
さらに1枚ページをめくります。
すると、フォトフレームのウィジェット"Chapter08widget" が左上にありました
これを長押ししてホームに設定すると、こんなふうに絵日記に登録したものと同じ画像がホームに常時表示されます
ここでは2回設定の操作を繰り返して、2つのウィジェットを設定しました。
ウィジェットに表示される画像は30分経過すると入れ替わると本に書いてありますが、それも確認できました。正確に 30分かどうかまでは計っていませんが。
今回、自分なりに少し頭を使ったのは、ウィジェットの名称を変更したことです。
サンプルコードではアプリと同じ "Chapter08" でした。それを、ウィジェット一覧のスクリーンショットをよく見ると分かる通り、"Chapter08widget" に変更してみました。
この変更は、文字列のリソース
res/values/strings.xml:
<string name="wid_name">Chapter08widget</string>を追加して、マニフェストに登録したウィジェット(AppWidget)の項目にある label へ
AndroidManifest.xml:
android:label="@string/wid_name">のように設定するだけでできました