画面は、画面を指でスクロール(スワイプ?)する事で 切り替わるのだが、その切り替わりをライブ壁紙でどのように検知するか・・・
画面のスクロールはonOffsetsChangedで簡単に取得できる
そして、標準のHOMEアプリで動くライブ壁紙であれば、画面の切替わりは問題なく判別できる
問題なのは、カスタマイズされたHOMEアプリの上で動作させる場合だ
現在、docomoのパレットUIでは、onOffsetChangedで渡される値からは判別が不可能と判断した
同様にXperia acroも判別が不可能だ
検証の為、いくつかの端末で、画面が切替わった際にonOffsetsChangedへ引き渡される値をメモしておいたので、載せておきます
※横方向だけの値です
※onOffsetsChanged(float offset, float arg2, float step, float arg4, float pixcels, float arg6)
※wallPaperWidth:画面の横幅
※pageWidth:壁紙1画面の横幅
Nexus one | |||||
1 | 2 | 3 | 4 | 5 | |
offset | 0 | 0.25 | 0.5 | 0.75 | 1 |
step | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 |
pixels | 0 | 120 | 240 | 360 | 480 |
wallpaperWidth | 600 | 600 | 600 | 600 | 600 |
pageWidth(wallPaperWidth * step) | 120 | 120 | 120 | 120 | 120 |
Galaxy Tab(SC-01C) | |||||
1 | 2 | 3 | 4 | 5 | |
offset | 0 | 0.25 | 0.5 | 0.75 | 1 |
step | 0.25 | 0.25 | 0.25 | 0.25 | 0.25 |
pixels | 0 | 150 | 300 | 450 | 600 |
wallpaperWidth | 600 | 600 | 600 | 600 | 600 |
pageWidth(wallPaperWidth * step) | 150 | 150 | 150 | 150 | 150 |
Galaxy SⅡ(SC-02C) パレットUI | |||||
1 | 2 | 3 | 4 | ||
offset | 0 | 0.33 | 0.67 | 1 | |
step | 1 | 1 | 1 | 1 | |
pixels | 0 | 160 | 320 | 480 | |
wallpaperWidth | 480 | 480 | 480 | 480 | |
pageWidth(wallPaperWidth * step) | 480 | 480 | 480 | 480 | |
IS03 | |||||
1 | 2 | 3 | 4 | ||
offset | 0 | 0.33 | 0.67 | 1 | |
step | 0.33 | 0.33 | 0.33 | 0.33 | |
pixels | 0 | 213 | 427 | 640 | |
wallpaperWidth | 640 | 640 | 640 | 640 | |
pageWidth(wallPaperWidth * step) | 213 | 213 | 213 | 213 | |
Xperia acro | |||||
1 | 2 | 3 | 4 | 5 | |
offset | 0 | 0.25 | 0.5 | 0.75 | 0.99999 |
step | 1 | 1 | 1 | 1 | 1 |
pixels | 0 | 120 | 240 | 360 | 480 |
wallpaperWidth | 480 | 480 | 480 | 480 | 480 |
pageWidth(wallPaperWidth * step) | 480 | 480 | 480 | 480 | 480 |
0 件のコメント:
コメントを投稿