hyoromoのブログ

iOS/AndroidもしくはCocos2dxネタを書いています

Androidで壁紙設定してみたよ

Android Home の壁紙を画像指定して変更します。

やり方

Bitmap bmp = BitmapFactory.decodeFile("(画像ファイル指定)");
setWallpaper(bmp);

これで壁紙の設定は完了です。
あとは、AndroidManifest.xml に以下の一文を添えるだけ!

<uses-permission android:name="android.permission.SET_WALLPAPER" />

これで終了。なんて簡単なのでしょう。

ソース

書きかけですが、実際に私が書いたソースもこちらで公開しておきます。

注意点

setBackgroundDrawableメソッド呼び出しは結構時間がかかります。
eclipse から起動した場合ですと、「(アプリ名)は応答していません。」エラーダイアログが表示されるかもしれません。
そういった場合は[待機]を選ぶか、デプロイ済みのアプリを Android側から起動すれば大丈夫かと思います。この現象は、eclipse から起動した場合だと Android側でデバッグモードになるため、アプリ側に余計な負荷がかかってしまうからです*1

まとめ

はい、簡単でしたね。情報もかなり出回ってる内容なので、実装自体に苦労はありませんでした...「応答ありません」エラーにハマっちゃいましたが。
あと、Home のサイズに合った壁紙サイズだと正常に動作しますが、サイズが合わないとズレてしまいます。もう少し細かい画像操作ができると思いますので、また時間があるときに調べてみます。

参考サイト

Deeds Not Words-壁紙の設定方法
共に学びたいです。シンプルに実装できることが分かりました、ありがとうございます。
ん・ぱか工房-Androidメモ-壁紙の変更
晒しているコードの雛形にさせて頂きました。

*1:言い切りましたが実は微妙なとこ。どこかで読んだ記憶があるだけなため、ソースを提示することができません。