読者です 読者をやめる 読者になる 読者になる

hyoromoのブログ

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

WallpaperManagerについて

Android SDK 2.0 から新しく追加された WallpaperManager について少し調べてみました。

壁紙設定

WallpaperManager wallpaperManager = WallpaperManager.getInstance(mContext);
wallpaperManager.setBitmap(bmp);

Context#setWallpaper()との違いですが、今までは Bitmap と InputStream しか受け付けていませんでしたが、今回から ResourceId も受け渡し可能となりました!以外は特に変わってないように思えます。

suggestDesiredDimensions

気持ち悪いメソッドが一つあるので、紹介します。
public void suggestDesiredDimensions (int minimumWidth, int minimumHeight)

説明

Home画面として使用できる領域を指定できます。
かなり怖いメソッドです。使用するには十分に注意したほうが良いでしょう。
追加するpermissionは、android.permission.SET_WALLPAPER です。

実例

デフォルト壁紙から、初音ミク壁紙を変更してみました。
上が通常(640×480)、下が320×240指定です。
normal
irregular

これ下の状態になると、左右にHomeをスクロールできないんだぜ...
あと、利用領域が画像範囲になるため次からHome領域を取得すると320×240で取れてきます。

まとめ

前々回に書いた2.0での変更の原因となっている WallpaperManager 、追加機能は使えなさそうな印象です。
1.6までは壁紙幅がHomeの幅より少なければ、壁紙の横スクロールが壁紙幅に合わせて行われていましたが、今回それが行われない且つそれを行うためにAPI提供されていません。
1.6 と 2.0 とで、どうしても挙動が変わってしまいます...