Live Wallpaper 作成

デジタル時計のライブ壁紙を作りたかったので作る。

プロジェクト作成

前にやったときと基本的に同じ。

ライブ壁紙のサンプル

Android SDK の samples の下に CubeLiveWallpaper というものがあったので、これを見つつ色々やる。

プロジェクト書き換え

AndroidManifest.xml

サンプルの AndroidManifest.xml と見比べつつ書いていく。
activity タグの部分を service タグにして、諸々書き換えた。
まあそこら辺はフィーリング。

ついでに

<uses-sdk android:minSdkVersion="8" />

なんて加えたので、 android 2.2 未満のバージョンだと動かないんじゃないかな。

build.xml

前回同様に android_rules.xml を参照するようにした。

android_rules.xml

android_rules.xml の以下の行を

 -keep public class * extends android.app.Activity

以下のように書き換えないとすべてのクラスが proguard で消されるらしい。

 -keep public class * extends android.service.wallpaper.WallpaperService   

日付まわり

import java.util
import java.text

val now = new util.Date()
val fmt = new text.SimpleDateFormat("yyyyMMdd hhmmss")
println(fmt format now)

Font 描画周り

描画幅取得

http://blog.tenshodo.org/2009/09/android.html

paint measureText str

で取れるみたい。

フォント設定
paint setTypeface typeface

でできるかな。

screen shot を撮る

ddms でできた。

デバッグ方法

import android.util

して

util.Log.d(TAG, debug_string) 

とするとログがはける。

吐いたログは PC と接続して

acb logcat

で見られる。
ログを見るだけなら android market で logger というアプリケーションをダウンロードしてインストールするといいかも。

ddms も使えるんじゃないかな

完成

んで、できた。
スクリーンショットhttp://twitpic.com/23x2gn