Отправленная информация получена преждевременно

#android #scaling #zooming #pinchzoom

#Android #масштабирование #pinchzoom

Вопрос:

Я работаю над функцией в своем приложении, которая увеличивает и уменьшает масштаб. Я заметил, что когда я увеличиваю масштаб, мое приложение получает onScaleEnd(), хотя оба моих пальца все еще находятся на экране. Из-за этого мое приложение ведет себя неожиданным образом. Я протестировал его на эмуляторе Nexus 5 Android и планшете Google Pixel. Обратите внимание, что при уменьшении масштаба событие onScaleEnd() принимается, как и ожидалось, когда я удаляю любой из пальцев с экрана.

Кто-нибудь может подсказать, почему это происходит, или это известная ошибка Android и как ее обойти / исправить?

Ответ №1:

По словам разработчиков Android

onScaleEnd Реагирует на завершение масштабного жеста. Сообщается о том, что существующие указатели увеличиваются. После завершения масштабирования getFocusX() и отвечает на конец жеста масштабирования. Сообщается по существующим указателям, идущим вверх. Как только масштаб закончится, getFocusX() и getFocusY() вернут фокусную точку указателей, оставшихся на экране. вернет фокусную точку указателей, оставшихся на экране.

Комментарии:

1. Я понимаю это, но, к сожалению, это не отвечает на мой вопрос. В моем случае, когда я увеличиваю масштаб и держу палец на экране немного дольше, я получаю onScaleEnd(), даже если оба пальца находятся на экране.