Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Библиотеки/классы обработки мультитатча - Программирование Android

05.11.2013, 21:32. Просмотров 548. Ответов 7
Метки нет (Все метки)

Пишу свой обработчик мультитатча на основе onTouch. Обрабатываю каждый палец, пишу историю каждого нажатия пальца (100 последних точек по каждому "скользящему" пальцу)... Вычислил среднее для вычисления центра вращения. Красиво нарисовал это поверх затемненной картинки для отладки. Начинаю вычислять зум, вращение(вокруг центра, фиксированой точки, первого пальца), перетаскивание нескольких предметов "драгом" разными пальцами, дбл-клик, клик двумя и тремя пальцами...

И вдруг подумал... а не изобретаю ли я велосипед? Читал о какой-то встроеной функции (кажется примитивной) для зума(причем кажется только 2мя пальцами). А нет ли ГОТОВЫХ и "РАСШИРЕННЫХ" библиотек для подобного? Вроде мультитатч обрабатывают уже ОЧЕНЬ давно - должна быть УЙМА наработок в том числе и опенсорс (сенсорным экранам уже лет 20). В опенсорсах нашел только один старый пример для примитивного зума и драга (причем центром зума).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Библиотеки/классы обработки мультитатча (Программирование Android):

Вынести классы ядра в библиотеки - Программирование Android
Гуру андроида, посоветуйте пожалуста! Пишу несколько проектов (для себя) и появляются обьмные классы, нужные одновременно всем моим...

Выбор библиотеки обработки 2D - Графика и игры
Hello, world! С программированием 2D-графики я никогда не сталкивался, поэтому опыта в данном деле нету, а нужно решить задачу. Суть...

методы, классы, библиотеки - Java SE
в книгах самоучителях и прочей литературе можно найти довольно широкий диапазон используемых в java методов и классов, но для большей...

Библиотеки С/С++ для цифровой обработки сигналов - C++
Доброго времени суток! Хотел узнать, быть может кто-нибудь знает библиотеку/библиотеки С/С++ для цифровой обработки сигналов. Чтобы была...

Классы, динамические библиотеки. VB6 - Visual Basic
Добрый вечер. Ребят, подскажите, никогда не работал с классами в Basic'е. Как работать с классами? На примере нескольких простейших задачек...

C++11 новые классы стандартной библиотеки - C++
Здравствуйте. Программирую в eclipse на С++, использую С++11. Код в новом стандарте компилируется, однако мне нужен новый класс...

7
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
06.11.2013, 01:23  [ТС] #3
Да... именно такое я и находил (за пример спасибо)...
Но ведь это примитив! На этом "фруктового нинзя" не сделаешь, как и вращение картинки не организуешь... Даже простой шлейф за пальцем не нарисовать... Только зум, перетаскивание и дблклик...
А вращение 3мя пальцами (вращаем "диск")? а драг двумя и 3мя пальцами? а дблклики двумя пальцами (как на сенсорах ноута)?
Сейчас считаю до дури математики, но она (пока) примитивная - заполнение буферов всех пальцев, только нажатых, с историей по времени и нажатиями... потом планирую на этих буферах искать "реакции"...
Где-то встречал даже анализ жестов с распознаванием букв... Причем в опенсорс виндовых-броузерах... Это не адаптировано под андроид???
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.11.2013, 03:31 #4
Цитата Сообщение от Tester64 Посмотреть сообщение
А вращение 3мя пальцами (вращаем "диск")? а драг двумя и 3мя пальцами? а
зачем для вращения больше двух, а для драга больше одного пальца? в чем выгода? не удобно же. да и интуитивно не понятно.

Добавлено через 38 минут
при вращении, если пальцы не подвижны по отношению друг к другу, то добавления 3-го и больше пальцев никак не влияют на результат, а если подвижны, то, в любом случае, все пальцы не будут четко привязаны к первоначальной области касания, поэтому нет смысла использовать более двух пальцев для вращения.
а зачем для драга больше одного пальца и как дополнительный пальцы будут влиять на результат, я тоже не представляю.
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
07.11.2013, 22:42  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
зачем для вращения больше двух, а для драга больше одного пальца? в чем выгода? не удобно же. да и интуитивно не понятно.

при вращении, если пальцы не подвижны по отношению друг к другу, то добавления 3-го и больше пальцев никак не влияют на результат, а если подвижны, то, в любом случае, все пальцы не будут четко привязаны к первоначальной области касания, поэтому нет смысла использовать более двух пальцев для вращения.
а зачем для драга больше одного пальца и как дополнительный пальцы будут влиять на результат, я тоже не представляю.
"понятно-не понятно", "не интуитивно" - ХОЧЕТСЯ!
Если "случайно" положил 3 палец... если хочется положить пальцы на 5(!) предметов(переключатели, регуляторы звука/частот) и таскать их одновременно... если хочется сделать диск и вращать его положив любое количество пальцев на него, и игнорировать не лежащие на диске, а не крутить все вокруг центра между 2мя пальцами (нигде не видел под андроид)... если пофантазировать можно придумать несколько десятков применений...
Например хочу обработать "морзянку" - управляемой длины длинный и короткий клики... хочу обработать особым образом если тяну не одним пацльцем, а двумя, или дбл клик двумя-тремя пальцами (виндовая мультитатч-ноутбуковская панель позволяет - полная эмуляция мыши 3мя пальцами)..

По крайней мере 3й палец не должен МЕШАТЬ работе, а должен правильно обрабатываться. Сейчас либо 3й игнорируется, но обрабатывается криво если убрать 2й. либо по некой непонятной формуле зумирование продолжается отсчитывая изменение растояния между 3м пальцем и (похоже) ближайшим.

Хочу нарисовать медленно затухающий след за пальцами (5ю) - почему бы не "накапливать" старые мувы/клики в таблицах мультитатча, а не писать обработчик каждый раз заново?

Пишу с нуля... и матюкаюсь, т.к. все это видел на роликах на ютюбе под разные сенсорные платформы, а готовое решение под андроид такое кривое (гугловский пример успешно зависает на большом маштабе)...

p.s. если бы у меня был большой планшет с 10ю пальцами - там вообще можно было бы "развернуться" - либо работать/играть 2м пользователям (http://www.youtube.com/watch?v=idIITDwzLMc) либо побыть диджеем регулируя частоты всеми 10ю пальцами... надеюсь фантазия куда ЕЩЕ можно применить включится, когда доберусь, а пока вижу только каждый нажатый/отпущеный/сдвинутый палец с его личным кодом/номером и индексом...
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.11.2013, 03:09 #6
мне и 1 палец видимость заслоняет, ведь водить нужно по экрану а не по отдельному тачпаду.
единственное логическое что я увидел, это "побыть диджеем регулируя частоты всеми 10ю пальцами", так здесь вполне хватает существующего функционала, примитивнее некуда.

про вращение уже писал, дополнительные пальцы в принципе не влияют на него.
0
Tester64
396 / 357 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
08.11.2013, 20:09  [ТС] #7
... ладно! Если придумаю реальное применение и применю - похвастаюсь.

Как по мне мультитатч более чем на 2 пальца полезен лля ЛЮБОГО устройства(планшета) с большим экраном. Где большой мужской палец не закрывает 1/5 эрана (как на моем телефоне)...

Схватив картинку 3-4мя пальцами можно ее зумировать, перемещать и... искажать картинку (сделать углы не 90градусов). 3Д мультизум поможет приближать/удалять, вращать(по 3м осям), смещать вверх/низ/право/лево от центра картинки не переключая режимы отдельными "тумблерами"...
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
09.11.2013, 02:50 #8
основа для реализации есть, мультитач поддерживается, а уж всякую экзотику придется делать самому.
0
09.11.2013, 02:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2013, 02:50
Привет! Вот еще темы с ответами:

Реализовать классы для представления и обработки следующих фигур: - C++ Builder
Pеализовать классы для представления и обработки следующих фигур:

Как передать строку из Qt в классы библиотеки std? - C++ Qt
В моей программе, насколько я понял, возникает проблема совместимости кодировок в классах Qt и классах стандартной библиотеки. Путь к...

Как подключить классы из dll библиотеки, созданную в С# в программу? - C#
Как подключить классы из dll библиотеки, созданную в С# в программу?

Составить программу, используя последовательные классы стандартной библиотеки шаблонов С++ - Visual C++
Составить программу, используя последовательные классы стандартной библиотеки шаблонов С++, которая содержит текущую информацию о заявках...


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

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

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