Android2.1 SDKにてLiveWallpaperを作ってみた

今回ポケPさんのやよいが延々チキンライスを食べる夢を見続ける動画のGIFアニメを利用させて頂きました。
動画:http://www.nicovideo.jp/watch/sm9175055
倉庫:http://pocketp.blog123.fc2.com/blog-entry-56.html


SDK2.1がリリースされました。
今回のウリはLiveWallpaperです。
壁紙が動きます。
そんな訳で簡単なライブ壁紙を作ってみました。ソースコードこちら


samplesにCubeWallpaperというサンプルが付いてきます。
ソースを読むと非常に簡単な仕組みです。
実装にはServiceとEngineの二つを実装する必要があります。
Serviceは定型しか行わないので実際の実装はEngineのみです。
EngineはSurfaceViewを内部にて持っているようで、画面に更新の必要があるとSurfaceHolderを引数にしてonSurfaceChangedを呼び出します。そこでSurfaceHolderからCanvasをlockにて得て更新するだけです。
つまりSurfaceViewでゲーム等を作ったことがあれば全く問題なく作成することができます。
しかも更新の継続はHandlerを使っているだけというかなりシンプルな内容です。


画面からの操作をonTouchEventにて拾うことができます。
このため本当にゲームも問題なく作成できるでしょう。


今のところManifestやxmlまわりにまだ不明な箇所が存在します。
またLiveWallpaperの選択画面にてアイコンが表示されないのですが、何かアイコンを表示させる設定がサンプルにないものが存在すると睨んでおります。
ここいらへんの情報はいつもどおり数日中に公式blogにて解説記事が流されると思います。