2014年1月18日土曜日

[Android] アナログ時計アプリをライブ壁紙に改造する

The analog clock on the live wallpaper
前回 SurfaceViewで作成したアナログ時計アプリをライブ壁紙として改造てみました。
ライブ壁紙のAPIはSurfaceViewにそっくりです。
ソースコードを丸ごと流用できるわけではありませんが、SurfaceViewで開発したアプリはライブ壁紙に移植しやすいです。

針の画像です。128×128ピクセルです。
左から秒針、分針、時針のつもりです。
針の画像それぞれのピクセル数は32×128です。一番右の黒い塗りつぶしの領域は使用しません。

Eclipseのパッケージ・エクスプローラーで、プロジェクトの res フォルダーの下に
drawable-nodpi
というフォルダーを作り針の画像を配置します。

解像度ごとに大きさを合せた針の画像を用意したほうがいいかもしれません。

今回の開発環境は次の通りです。
・64bit版 Windows8
・32bit版 Eclipse3.7 (Windows XPモードで使用)
・Android-SDK r22.3

ライブ壁紙の対応OSはAndroid2.1以上なのでSDKの最小バージョンは7以上にする必要があります。

ライブ壁紙はXMLによるメタデータが必要です。
Eclipseのパッケージ・エクスプローラーで res フォルダーの下に xml というフォルダーを作り、メタデータのファイルを保存します。
メタデータファイル(res/xml/wallpaper.xml)

ライブ壁紙のソース(WallpaperSasmple.java)

マニフェスト(AndroidManifest.xml)

エミュレーターで動作させたスクリーンショットです。
動作保証は出来ませんがこのようになると思います。
ライブ壁紙なので、ショートカットアイコンやウィジットより後ろに重ねて表示されます。

関連ブログ
[Android] SurfaceViewのアナログ時計アプリ
[Android] アナログ時計のアプリを作ってみました
[Android] アナログ時計のアプリをC/C++で改良
[Android] ストップウォッチアプリを作ってみました
[Android] ストップウォッチアプリの表示をC言語でスムーズに改造する
[Android] 方位センサーを使ってコンパスアプリを作る
[Android] Javaのstaticクラスから非sataticメソッドを呼び出すには
[Android] OpenGLの簡易画像ビュアーにSDカード内の画像を表示する
[Windows8][Android] EclipseをXP互換モードで起動する理由(Can't bind to local 8600 for debugger)
[Android] Android-SDKでやってはいけないこと
[Android] Toastに画像やボタンを表示するには
[Android] ライブ壁紙の作り方
[Android] Activityに時計を表示する(Activityの非同期更新)
[Android] Webコンテンツを強制的に表示するには
[Android] Toastをcancelするには

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿