Android - закончилось событие трекбола? - PullRequest
3 голосов
/ 28 мая 2009

Я хочу переместить изображение по экрану в соответствии с движением трекбола. Я могу захватить движения, используя метод onTrackballEvent. Но это вызывается для очень малых значений с плавающей точкой (я полагаю, для каждого вращения?) Трекбола.

Теперь, когда позиции вида X и Y должны быть целыми при указании с помощью LayoutParams, нет смысла перемещать вид при каждом повороте. Вместо этого я хочу переместить вид только после того, как пользователь перестанет вращать трекбол.

Есть ли какой-нибудь метод, с помощью которого мы можем узнать, прекратил ли пользователь использование трекбола или нет?

Ответы [ 2 ]

2 голосов
/ 28 мая 2009

Если нет (я не знаю Android), классический подход - запускать таймер в каждом событии и отслеживать сообщаемые в нем дельты (добавляя их к промежуточной сумме, одна для X и один для Y). В любом последующем событии, прежде чем таймер сработает, просто перезапустите тот же таймер, продвигая его запуск дальше в будущее.

Когда пользователь прекращает генерировать события, в конечном итоге срабатывает таймер, а затем вы можете применить сумму всех движений и очистить суммы.

Подходящий тайм-аут должен быть выбран таким образом, чтобы взаимодействие с пользователем не воспринималось как слишком медленное. Возможно, что-то порядка 200-300 миллисекунд или более. Его легко настроить, пока он не станет «правильным».

1 голос
/ 28 мая 2009

Я также получил много пользы от установки порога. Таким образом, если общее движение в определенном направлении составляет в сумме определенную сумму, то запускается навигационное событие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...