1.5(1.6)から2.0での壁紙設定に関しての変更点
Android SDK 1.5 や 1.6 の時と、2.0 で Context#setWallpaper の挙動が変わりました。どこが変わったのかメモしておきます。
1.5(1.6)までの挙動
- 壁紙サイズは640×480(HVGA)
- 壁紙に設定する画像サイズのまま、壁紙として設定保存される。
- (壁紙に設定する画像の高さ=壁紙サイズの高さ)が成り立つ場合は、幅のサイズが合っていなくてもスクロールが補正される*1
2.0からの挙動
- 壁紙サイズは640×480(HVGA)
- 壁紙に設定する画像サイズが640×480(HVGA)に変換され、壁紙として設定保存される。その際、幅に合わせて変更されるので、はみ出た高さはカットされる。
480×480の画像を壁紙として設定した場合、一旦640×640に拡大させてから640×480にトリミングして壁紙設定される。
2.0からどう設定する必要があるの?
今までは自動補正?してくれた箇所を、自分で画像をトリミングする必要がありそうです。
壁紙設定サイズは以下のメソッドを呼べば取れてくるので、これを基準にデータ加工処理を追加すれば良いのでしょうね。
Context#getWallpaperDesiredMinimumWidth()Context#getWallpaperDesiredMinimumHeight()
最後に
検証用に使ってた分かりやすい画像をそのまま日記に載せました。問題がある場合は言って頂けたら即消します。
*1:スクロール補正されてるように見えてるだけかも