2011-06-25 127 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我可以改变的数量和增加新的,只要我喜欢,所以它不是总是要不断