Как сделать масштабирование с помощью сенсорной панели на ChromeOS/Android?

У меня есть приложение для Android, которое я запускаю на Chromebook. У меня есть виды, которые масштабируются с помощью жестов "пинч-и-зум", когда пользователь касается экрана устройства, и они отлично работают на Chromebook. Я пытаюсь заставить работать пинч-и-зум с сенсорной панелью.

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

Есть ли способ, которым я могу получить нефильтрованный поток входных событий, чтобы я мог видеть, что происходит? Я чувствую, что лучшая попытка слоя эмуляции заставить все "просто работать" (и это действительно хорошее усилие!) Кусает меня здесь. Я также замечаю, что некоторые события появляются как общие события движения, а некоторые - как события касания. И некоторые, как нажатие, чтобы щелкнуть, делают некоторые из каждого. Если это имеет значение, данные устройства ввода для ChromeOS Mouse утверждает, что имеет ( touchscreen mouse ) источники, что в основном имеет смысл. Кроме того, не должно быть touchpad вместо этого, поскольку он не подключен напрямую к дисплею?

На этой странице элемент списка № 5 подразумевает, что какое-то синтетическое событие может быть каким-то образом создано и использовано. Есть ли способ узнать, генерируются ли они? И если да, как бы я воспользовался?

Помогите!

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

1 ответ

Решение

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

Я настоятельно рекомендую перейти на уровень API 24, если вы хотите настроить таргетинг на Chromebook. Более подробную информацию об устройствах ввода Chromebook можно найти здесь: https://developer.android.com/topic/arc/input-compatibility.html

редактировать: тип устройства "тачпад" очень запутанно назван. Он зарезервирован для устройств вне экрана. Сенсорная панель рассматривается как мышь, поскольку она перемещает курсор мыши на экране.

Другие вопросы по тегам