У меня есть обходной путь. Когда вы разрабатываете живые обои в своем собственном 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
.
Вывод: счетчик рабочего стола = 1 / xOffsetStep + 1.
Я только что проверил этот метод на своем Defy и эмуляторе (3 домашних экрана) и нашел это. Документ SDK не объясняет этот метод в деталях. Пожалуйста, скажите мне, если это работает для вас. Спасибо.