С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
#1

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

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

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

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

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

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

Каким образом выводят информацию о новой версии приложения - Программирование Android
Вот стоит у меня какая то программа. Приходит уведомление о наличии обновления. Я обновляюсь. Открываю программу и выскакивает окно с...

Каким образом нужно работать с картинками при создании приложения? - Программирование Android
Люди добрые, подскажите мне такую вещь. Каким образом нужно работать с картинками при создании приложения? Я работаю в Android Studio, у...

Касание в EditText - Программирование Android
Подскажите пожалуйста, как можно обработать касание в EditText. Нужно при касании менять цвет, но не знаю как правильно вызвать обработчик...

Пропустить касание через окно - Программирование Android
Делаю приложение которое будет в Service отлавливать события. Использую WindowManager для создания прозрачного окна в Service.Можно ли...

Копирование текста во время касание - Программирование Android
Как сделать так чтобы по нажатию на текста, текст копировался в буфер обмена?(на Android Studio)

Некорректная реакция на касание элемента GridView - Программирование Android
У меня есть адаптер и в нем обработчик касания, который во-время касания выводить текст с того элемента на котором было осуществлено...

8
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
11.02.2016, 16:09 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
у 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
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
11.02.2016, 18:12 #3
Цитата Сообщение от Паблито Посмотреть сообщение
пытался понять принцип по которому считается это число
Как я понял из цитаты - выдает процент площади экрана, которая занята пальцем.
0
Pablito
11.02.2016, 18:17
  #4

Не по теме:

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

0
Shuma_256
7 / 7 / 2
Регистрация: 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
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
11.02.2016, 18:37 #6
мне показалось что ТС спрашивал про площадь касания, может ошибся

про несколько касаний и так все очевидно, в тот же getSize можно передавать и аргумент - номер касания
0
Shuma_256
7 / 7 / 2
Регистрация: 08.02.2016
Сообщений: 89
11.02.2016, 18:39 #7
Цитата Сообщение от Valakin Посмотреть сообщение
Каким образом мультитачь определяет второе и последующее касание?
Ну, тут вроде не про площадь))
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
11.02.2016, 18:40 #8
мне интересно что скажет ТС
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
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
Привет! Вот еще темы с ответами:

Отключить мультитач - Программирование Android
Здравствуйте. Как сделать так чтобы не обрабатывались касания если их больше одного? Тоесть есть 10 кнопок с одинаковым листенером нужно...

Маштабирование мультитач - Программирование Android
Здравствуйте! Хотел спросить имеется фотография которая увеличивается с центра экрана! расположение экрана setBounds(100, 50,...

мультитач зум - Программирование Android
накидал тут мультитач зум, но не могу разобраться, как заставить изображение в ImageView не вылазить за пределы видимости пользователя ...

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


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

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

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