SUGARSPOT

Androidアプリ、WEBサービス開発の SUGARSPOT  |Androidブログ「Androidのことなんだけど」もやってます

2011年7月11日月曜日

AndroidのLiveWallpaperで画面切替を判定できない?

ここ数週間ほど、ライブ壁紙で画面が切り替わりを識別するのに苦労している
画面は、画面を指でスクロール(スワイプ?)する事で 切り替わるのだが、その切り替わりをライブ壁紙でどのように検知するか・・・

画面のスクロールは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 件のコメント:

コメントを投稿