ライブ壁紙を開発し、7 つのホームスクリーンがある HTC Desire HD でテストしている間 (メインのホームスクリーンから左に 3 回、メインのホームスクリーンから右に 3 回スクロールできることを意味します)、これが適用されるかどうか疑問に思っていました。そこにあるすべてのAndroidデバイス?
そうでない場合、どうすればこのホームスクリーンの数にアクセスできますか?
ライブ壁紙を開発し、7 つのホームスクリーンがある HTC Desire HD でテストしている間 (メインのホームスクリーンから左に 3 回、メインのホームスクリーンから右に 3 回スクロールできることを意味します)、これが適用されるかどうか疑問に思っていました。そこにあるすべてのAndroidデバイス?
そうでない場合、どうすればこのホームスクリーンの数にアクセスできますか?
回避策があります。独自のクラスでライブ壁紙を開発する場合、WallpaperServiceこのメソッドをオーバーライドできます: public void onOffsetsChanged(float xOffset, float yOffset,float xOffsetStep, float yOffsetStep, int xPixelOffset,int yPixelOffset).
ホーム画面をスワイプしてドラッグすると、システムはこのメソッドを呼び出します。この方法で、ホームスクリーンがいくつあるかを知ることができ、現在のホームスクリーンがどこにあるかを特定することもできます。
つまり、私のデバイスは Moto Defy で、7 つのホーム画面があります。左端のホームスクリーンから右端にスワイプするとxOffset、0、0.16666、0.33333、0.5... から 1 に変わりますxOffset。これは のパラメータですxOffsetStep。
結論: ホームスクリーン数=1/xOffsetStep+1.
このメソッドを自分の Defy とエミュレーター (3 つのホームスクリーン) でテストしたところ、これが見つかりました。SDK ドキュメントでは、この方法について詳しく説明していません。これがうまくいくかどうか教えてください。ありがとう。
7 つのホーム画面はデフォルトではありません。Nexus One には 5 つのホーム画面しかありません。インストールされているホームスクリーンアプリケーションに依存します。HTCs デバイスでは、これはデフォルトで「Sense」で、7 つのホームスクリーンをサポートします。標準の Android ホームスクリーンは 5 つしかサポートしていませんが、他のものは無限のホームスクリーンをサポートしている可能性があります。ユーザーはこれらのアプリケーションを独自に置き換えることができるため、デバイスに依存しません。
Cyanogenmod 7 は可変数のホームスクリーンをサポートしているため、あるサイズのスクリーンの数は別のサイズと同じではない場合があります。
また、いつでも番号を変更して新しい番号を追加できるため、常に一定であるとは限りません
その価値のために、Motoblur (Droid X / X2 など) は 7 つのホーム画面を使用します。中央、両側に +3。