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

hyoromoのブログ

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

1.5(1.6)から2.0での壁紙設定に関しての変更点

Android SDK 1.5 や 1.6 の時と、2.0 で Context#setWallpaper の挙動が変わりました。
どこが変わったのかメモしておきます。

1.5(1.6)までの挙動

  • 壁紙サイズは640×480(HVGA)
  • 壁紙に設定する画像サイズのまま、壁紙として設定保存される。
  • (壁紙に設定する画像の高さ=壁紙サイズの高さ)が成り立つ場合は、幅のサイズが合っていなくてもスクロールが補正される*1

480×480の画像を壁紙として設定した場合、そのまま壁紙として480×480画像が設定される。
wallpaper1.5

2.0からの挙動

  • 壁紙サイズは640×480(HVGA)
  • 壁紙に設定する画像サイズが640×480(HVGA)に変換され、壁紙として設定保存される。
    その際、幅に合わせて変更されるので、はみ出た高さはカットされる。

480×480の画像を壁紙として設定した場合、一旦640×640に拡大させてから640×480にトリミングして壁紙設定される。
wallpaper2.0

2.0からどう設定する必要があるの?

今までは自動補正?してくれた箇所を、自分で画像をトリミングする必要がありそうです。
壁紙設定サイズは以下のメソッドを呼べば取れてくるので、これを基準にデータ加工処理を追加すれば良いのでしょうね。
Context#getWallpaperDesiredMinimumWidth()
Context#getWallpaperDesiredMinimumHeight()

最後に

検証用に使ってた分かりやすい画像をそのまま日記に載せました。問題がある場合は言って頂けたら即消します。

*1:スクロール補正されてるように見えてるだけかも