Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Valakin
299 / 100 / 15
Регистрация: 21.02.2015
Сообщений: 806
1

Каким образом мультитач определяет второе и последующее касание?

11.02.2016, 15:56. Просмотров 957. Ответов 8
Метки нет (Все метки)

Уважаемы форумчане, есть какое то объяснение по такому вопросу?

Каким образом мультитачь определяет второе и последующее касание?

Если вдуматься, то палец не иголка, а получаю я только x и y
хотя по идею мог бы получить все координаты касания,
зоной больше похожей на круг

Вопрос в том как получить все координаты этой зоны и возможно ли это?
1
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2016, 15:56
Ответы с готовыми решениями:

Каким образом Я определяет уникальность текста?
Вот возник такой вопрос. Берем например партнерский сайт - таких много. Текст на них всех...

Каким образом TabControl определяет ширину табы?
Создаю два TabControl-а, один с DrawMode = TabDrawMode.Normal, другой - TabDrawMode.OwnerDrawFixed....

Каким образом программа определяет эффективный угол?
Ребят, объясните одну вещь: есть программа на С++,которая вычисляет при каком угле расстояние...

Каким образом смартфон на андроиде определяет своё местоположение?
У меня есть такой вопрос: каким образом смартфон на андроиде определяет своё местоположение при...

Каким образом система определяет, что драйвер не установлен?
Приветствую! Есть вопрос, каким образом система определяет в реестре, что драйвер не установлен,...

8
Pablito
2829 / 2248 / 759
Регистрация: 12.05.2014
Сообщений: 7,851
Завершенные тесты: 1
11.02.2016, 16:09 2
Лучший ответ Сообщение было отмечено Valakin как решение

Решение

у TouchEvent есть метод getSize() котрый возвращает число от 0 до 1
я когда-то пытался понять принцип по которому считается это число - бестолку

если лезть в исходники то в методе getSize сразу вызывается нативный метод с несколькими параметрами и дальше мой интерес копать резко угас )

доки к этому методу говорят
Returns a scaled value of the approximate size for the given pointer index (use getPointerId(int) to find the pointer identifier for this index). This represents some approximation of the area of the screen being pressed; the actual value in pixels corresponding to the touch is normalized with the device specific range of values and scaled to a value between 0 and 1. The value of size can be used to determine fat touch events.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
11.02.2016, 18:12 3
Цитата Сообщение от Паблито Посмотреть сообщение
пытался понять принцип по которому считается это число
Как я понял из цитаты - выдает процент площади экрана, которая занята пальцем.
0
Pablito
11.02.2016, 18:17
  #4

Не по теме:

не думаю что все так просто
мне лениво литературно переводить сюда этот текст, но я его понял немного не так
и числа которые выдает этот метод скачут как лошади и отличаются иногда на два порядка, попробуй

0
Shuma_256
7 / 7 / 3
Регистрация: 08.02.2016
Сообщений: 89
11.02.2016, 18:36 5
Система умеет обрабатывать до 10 касаний включительно. Есть мнение, что это как-то связано с количеством пальцев на руках При этом учитывайте, что далеко не все устройства поддерживают 10 касаний.

Рассмотрим систему событий для мультитача.

ACTION_DOWN – срабатывает при касании первого пальца
ACTION_POINTER_DOWN – срабатывает при касании каждого последующего пальца
ACTION_MOVE - срабатывает при любом движении
ACTION_ POINTER_UP – срабатывает при отпускании каждого пальца кроме последнего
ACTION_ UP – срабатывает при отпускании последнего пальца

Небольшое пояснение
Кликните здесь для просмотра всего текста
Чтобы стало понятнее, рассмотрим ситуацию с тремя пальцами. Обозначим их - П1, П2 и П3. Будем касаться ими экрана и смотреть какие индексы и ID система им присваивает.

Касаемся экрана пальцем П1.

Для П1: индекс = 0, ID = 0



Далее касаемся экрана пальцем П2, не отпуская П1. Получим такие данные:

П1: индекс = 0, ID = 0
П2: индекс = 1, ID = 1



Далее касаемся экрана пальцем П3, не отпуская П1 и П2. Получим такие данные:

П1: индекс = 0, ID = 0
П2: индекс = 1, ID = 1
П3: индекс = 2, ID = 2



Теперь отпускаем палец П1. Получаем:

П2: индекс = 0, ID = 1
П3: индекс = 1, ID = 2

Видим, что П2 и П3 сохранили свои ID, а их индексы сместились.



Отпустим палец П2, получим:

П3: индекс = 0, ID = 2

П3 сохранил свой ID, который был изначально. А индекс его сначала был 2, потом 1, теперь 0.



Держим П3. Коснемся экрана пальцем П1, получим:

П1: индекс = 0, ID = 0
П3: индекс = 1, ID = 2

П1 получил первый свободный ID - 0. Индекс его тоже стал 0. А П3 получил индекс 1.



Держим П3 и П1. Коснемся экрана пальцем П2, получим:

П1: индекс = 0, ID = 0
П2: индекс = 1, ID = 1
П3: индекс = 2, ID = 2

П2 получил первый свободный ID - 1. И он сместил П3 в списке индексов.
1
Pablito
2829 / 2248 / 759
Регистрация: 12.05.2014
Сообщений: 7,851
Завершенные тесты: 1
11.02.2016, 18:37 6
мне показалось что ТС спрашивал про площадь касания, может ошибся

про несколько касаний и так все очевидно, в тот же getSize можно передавать и аргумент - номер касания
0
Shuma_256
7 / 7 / 3
Регистрация: 08.02.2016
Сообщений: 89
11.02.2016, 18:39 7
Цитата Сообщение от Valakin Посмотреть сообщение
Каким образом мультитачь определяет второе и последующее касание?
Ну, тут вроде не про площадь))
0
Pablito
2829 / 2248 / 759
Регистрация: 12.05.2014
Сообщений: 7,851
Завершенные тесты: 1
11.02.2016, 18:40 8
мне интересно что скажет ТС
0
Valakin
299 / 100 / 15
Регистрация: 21.02.2015
Сообщений: 806
11.02.2016, 20:28  [ТС] 9
Shuma_256, спасибо что отвечаете, но дейтсвительно вопрос был про зону
0
11.02.2016, 20:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2016, 20:28

Каким образом такой сервис как http://2ip.ru/ определяет, что у меня стоит Windows?
Каким образом такой сервис как http://2ip.ru/ определяет, что у меня стоит Windows? Хотелось бы...

почему $_FILES не всегда определяет тип файла? каким образом можно определить тип в 100% случаях?
почему $_FILES не всегда определяет тип файла? каким образом можно определить тип в 100% случаях?

Каким символом и каким образом отобразить пробел в document.write
Вот код var mailExample = /^(+)@((+\.)+{2,6})$/; var Str = "hoolio934@mail.ru"; var Str1 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru