Intereting Posts
Отладка кода Android NDK C / C ++ в Eclipse – точки останова не попадают Android-приложение, которое должно быть установлено только на телефоне, а не на планшетах ShareActionProvider с расколом ActionBar Макет дизайна для нескольких экранов Доступность Android в текстовом редакторе с подсказкой Показать пункт меню всегда в панели действий поддержки Edittext меняет цвет границы с помощью shape.xml Android eclipse – восклицательный знак рядом с названием проекта Что означают номера сборки в телефоне Android. Как они формируются. Указывают ли они на какой-то смысл, который я не могу понять? Загрузите, установите и удалите файл .apk на устройстве Android с программным обеспечением с веб-сайта, отличного от рынка Как улучшить производительность сайта на iPad / iPhone? Как шифровать в устройстве и расшифровывать на стороне сервера ключ шифрования Android-джек и джилл застряли Android Studio + Robolectric + Gradle Class Not Found Exception Измените вес макета с помощью анимации

Multi-touch кросс-платформенный Java-приложение (Windows, Mac и Linux (Ubuntu) (возможно, Android))

Я пытаюсь добавить multi-touch к существующему проекту кросс-платформы java. Я рассмотрел два способа. Было несколько других способов, но они, казалось, не были перекрестной платформой или нуждались в специальном программном обеспечении.

  1. JavaFx – рабочие события gesturing / touchhevent на окнах и osx, но не работают на Ubuntu 16.04.
  2. MT4J – выглядит прекращенным и / или неподдерживаемым.

Мои выводы для вышеуказанного могут быть неправильными, и я готов снова попробовать их, получив хорошие отзывы.

В любом случае, для достижения кросс-платформенного приложения с несколькими касаниями java? Кажется, мне может понадобиться написать некоторый собственный код и добавить его через JNI, который, похоже, много работает. Любые идеи по этой линии мысли ?. Обратная связь приветствуется, спасибо.

Продолжение 1.0:

Я продолжал расследовать использование JavaFX в Linux, главным образом потому, что единственным недостатком прямо сейчас для использования JavaFX является поддержка многозадачности linux. Я обнаружил, что JavaFx multitouch действительно работает с дистрибутивами Linux, предназначенными для встроенных систем (например, Raspberry Pi, возможно, наиболее честным). Из этого я могу собрать, если OpenJFX может быть скомпилирован для встроенной системы, тогда встроенная версия OpenJFX напрямую использует драйверы устройств для ввода ввода (/ dev / input /) вместо X11 / GTK. Поскольку Linux для рабочего стола использует X11 / GTK для входа в среду рабочего стола, JavaFx не может получить эти события из-за отсутствия поддержки.

Я не хочу использовать ссылку, но здесь она

https://wiki.openjdk.java.net/display/OpenJFX/Building+the+OpenJFX+embedded+stack+for+Linux+desktop

В приведенной выше ссылке мне кажется, по крайней мере, вопрос о компиляции версии систем OpenJFX для x86 (должен работать x64), который использует встроенные системы для получения ввода устройства. Я могу скомпилировать эту версию, но при запуске она, похоже, разбивает Рабочий стол, и иногда он оставляет приложение Java. Когда приложение Java остается включенным, события прикосновения работают, но этот результат просто неприемлем, поскольку он непредсказуем и, похоже, разбивает диспетчер рабочего стола (после этого требуется перезагрузка рабочего стола).

Продолжение 1.1:

Я изучал использование TUIO, но ни одна из примеров программ не работала. Говорят, что вам нужно устройство для включения TUIO, которое может быть специальным стандартом / protocal, которое мои устройства не используют. Довольно просто загрузили демо-версию TUIO и запускали ее на сенсорном экране без везения.

Я также подумал о прикреплении xev к окну приложения java и потоковой передаче результатов в файл, который должен быть прочитан java-приложением и проанализирован в java-событиях. Это кажется довольно взломанным, и я не уверен, что он даже сработает. Если кто-то выложит возможность этой работы, я могу попробовать. Но на данный момент это похоже на работу.

Продолжение 1.2:

Нашел это https://bugs.openjdk.java.net/browse/JDK-8090954 и подумал, что это интересно.

Изложено решение ниже.

Solutions Collecting From Web of "Multi-touch кросс-платформенный Java-приложение (Windows, Mac и Linux (Ubuntu) (возможно, Android))"

В последнее время было много кроссплатформенных проектных генераторов

Реагировать на родной, Кордовы – некоторые из тех

Я использовал React Native. Он использует коды javascript, которые скомпилированы в соответствии с платформой

React native has support for Gesture Control programming https://facebook.github.io/react-native/docs/gesture-responder-system.html you can also interface the react portion of code with the existing JAVA code for the app which you have already written https://facebook.github.io/react-native/docs/integration-with-existing-apps.html 

И, пожалуйста, примите ответ, если это будет полезно

Решением было использование TUIO и сворачивание собственной библиотеки Multi-Touch. Трюк начинался с TUIOClient и запускался на сервере TUIO. TUIOClient прослушивает данный порт, а сервер TUIO пересылает события ОС на порт, который прослушивает клиент TUIO.

Я использовал сервер mtdev2tuio (выходной мост) для linux и запускал его вместе с клиентом TUIO.

Пример потока:

1.) TUIOClient, прослушивающий порт x

2.) TUIOServer пересылает события TUIO в порт x из os-событий y

Linux:

1.) новый TUIOClient (3333)

2.) ./mtdev2tuio / dev / input / event5 osc.udp: //127.0.0.1: 3333

Решение не является идеальным, но оно работает и должно поддерживать мультитач на любом устройстве при наличии сервера TUIO (Output Bridge). Другим недостатком является то, что нужно фиксировать штрихи и интерпретировать их в жесты. Также обратите внимание, в зависимости от того, как оно развивается, диктует, как вы используете его в разных рамках. Наши должны будут использоваться в Swing / JavaFX.