【发布时间】:2011-09-09 00:26:00
【问题描述】:
在开发动态壁纸并在 HTC Desire HD 上进行测试时,它有 7 个主屏幕(意味着您可以从主屏幕向左滚动 3 次,从主屏幕向右滚动 3 次),我想知道是否这适用于所有的 Android 设备吗?
如果没有,我如何访问此主屏幕计数?
【问题讨论】:
标签: android homescreen
在开发动态壁纸并在 HTC Desire HD 上进行测试时,它有 7 个主屏幕(意味着您可以从主屏幕向左滚动 3 次,从主屏幕向右滚动 3 次),我想知道是否这适用于所有的 Android 设备吗?
如果没有,我如何访问此主屏幕计数?
【问题讨论】:
标签: android homescreen
我有一个解决方法。当您开发动态壁纸时,在您自己的WallpaperService 类中,您可以覆盖此方法:public void onOffsetsChanged(float xOffset, float yOffset,float xOffsetStep, float yOffsetStep, int xPixelOffset,int yPixelOffset)。
当您滑动并拖动主屏幕时,系统将调用此方法。通过这种方法,您可以知道有多少个主屏幕,也可以识别当前主屏幕在哪里。
即,我的设备是 Moto Defy,它有 7 个主屏幕。当我从最左边的 homescren 滑动到最右边时,xOffset 从 0、0.16666、0.33333、0.5... 变为 1。所以你看,两个直接 xOffset 之间的差异是 0.16666=1/(homescreen count- 1)。这只是xOffsetStep的参数。
结论:主屏幕计数=1/xOffsetStep+1。
我刚刚在我自己的 Defy 和一个模拟器(3 个主屏幕)上测试了这个方法,发现了这个。 SDK 文档没有详细解释这个方法。请告诉我这是否适合您。谢谢。
【讨论】:
7 个主屏幕绝对不是默认设置,Nexus One 只有 5 个主屏幕。这取决于安装的主屏幕应用程序。在 HTC 设备上,默认为“Sense”,支持 7 个主屏幕。库存的 android 主屏幕仅支持 5 个,其他的可能支持无限主屏幕。用户可以自行替换这些应用程序,因此不依赖于设备。
【讨论】:
Motoblur(Droid X / X2 等)使用了 7 个主屏幕。居中,两边 +3。
【讨论】:
Cyanogenmod 7 支持可变数量的主屏幕,因此一种尺寸的屏幕数量可能与另一种不同。
也我可以随时更改数字并添加新数字,因此它并不总是不变
【讨论】: