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指定です。
これ下の状態になると、左右にHomeをスクロールできないんだぜ...あと、利用領域が画像範囲になるため次からHome領域を取得すると320×240で取れてきます。
まとめ
前々回に書いた2.0での変更の原因となっている WallpaperManager 、追加機能は使えなさそうな印象です。1.6までは壁紙幅がHomeの幅より少なければ、壁紙の横スクロールが壁紙幅に合わせて行われていましたが、今回それが行われない且つそれを行うためにAPI提供されていません。1.6 と 2.0 とで、どうしても挙動が変わってしまいます...