1

在开发动态壁纸并在具有 7 个主屏幕的 HTC Desire HD 上进行测试时(这意味着您可以从主屏幕向左滚动 3 次,从主屏幕向右滚动 3 次),我想知道这是否适用于每个Android设备都在那里?

如果没有,我如何访问此主屏幕计数?

4

4 回答 4

4

我有一个解决方法。当你开发动态壁纸时,在你自己的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 文档没有详细解释这个方法。请告诉我这是否适合您。谢谢。

于 2011-06-25T16:11:25.513 回答
1

7 个主屏幕绝对不是默认设置,Nexus One 只有 5 个主屏幕。这取决于安装的主屏幕应用程序。在 HTC 设备上,默认为“Sense”,支持 7 个主屏幕。库存的 android 主屏幕仅支持 5 个,其他可能支持无限主屏幕。用户可以自行替换这些应用程序,因此它不依赖于设备。

于 2011-06-25T15:02:23.910 回答
0

就其价值而言,Motoblur(Droid X / X2 等)使用 7 个主屏幕。中心,两边+3。

于 2011-06-25T17:18:56.780 回答
0

Cyanogenmod 7 支持可变数量的主屏幕,因此一种尺寸的屏幕数量可能与另一种尺寸不同。

也可以随时更改数字并添加新数字,因此它并不总是保持不变

于 2011-09-08T16:26:00.717 回答