2011-06-25 179 views
1

同時在HTC Desire HD上開發動態壁紙和測試,該屏幕有7個主屏幕(這意味着您可以從主主屏幕向左滾動3次,從主屏幕向右滾動3次),我想知道這是否適用於所有Android設備?Android主屏幕計數

如果不是,我怎樣才能訪問這個主屏幕數量?

回答

4

我有一個解決方法。當你開發一個動態壁紙,在你自己的WallpaperService班,你可以重寫這個方法:public void onOffsetsChanged(float xOffset, float yOffset,float xOffsetStep, float yOffsetStep, int xPixelOffset,int yPixelOffset)

當您輕掃並拖動主屏幕時,系統將調用此方法。通過這種方法,您可以知道有多少個主屏幕,還可以識別當前homescrren的位置。

即,我的設備是Moto Defy,它有7個主屏幕。當我從最左側的homescrren滑動到最右側時,xOffset從0,0.16666,0.33333,0.5 ...變爲1.因此,您會發現,兩個即時xOffset之間的差異爲0.16666 = 1 /(主屏幕計數-1)。這只是xOffsetStep的參數。

結論:homescreen count = 1/xOffsetStep + 1。

我剛剛在我自己的Defy和一個模擬器(3個主屏幕)上測試了這個方法,並且發現了這個。 SDK文檔沒有詳細解釋這種方法。請告訴我,這是否適合你。謝謝。

+0

偉大的建議!這是多少開發人員識別他們的方式。 – berlindev

1

7個主屏幕默認不是默認的,Nexus One只有5個主屏幕。它取決於安裝的主屏幕應用程序。在HTC設備上,默認情況下,這是「Sense」,支持7個主屏幕。股票的Android Homescreen只支持5,其他可能支持無限的主屏幕。用戶可以自行替換這些應用程序,因此它不是依賴於設備的設備。

+1

是否有某種定義,因此計數可以通過這個VAR來計算總寬度可變/屏幕寬度? –

0

對於它的價值,Motoblur(Droid X/X2等)使用7個主屏幕。中心,任何一方+3。

0

Cyanogenmod 7支持可變數量的主屏幕,因此一種尺寸的屏幕數量可能與另一種尺寸的屏幕數量不同。

ALSO我可以改變的數量和增加新的,只要我喜歡,所以它不是總是要不斷