Как я могу взаимодействовать с элементами за прозрачным Android-приложением?

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

Этот пост помог мне сделать представление приложения полупрозрачным.

Как можно позволить пользователю взаимодействовать с тем, что стоит за полупрозрачным приложением? Это приложение является хорошим примером приложения, которое позволяет использовать приложение «Прозрачный экран» для Android.

Очень простой способ понимания укладки представлений – взять книгу (любую книгу). Подумайте о каждой странице как о представлении.

видимость

  • Когда вы открываете книгу, вы можете увидеть страницу (Основной вид – VISIBLE )
  • Когда вы поворачиваете текущую страницу, вы можете увидеть следующую страницу ( INVISIBLE – Main View, чтобы отобразить следующее представление. Помните, что вы скрываете представление, если вы установите видимость в GONE это эквивалентно разрыву текущей страницы, чтобы просмотреть следущая страница.)

Сенсорные сценарии

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

Не унывайте, так как это взгляд, с которым вы будете иметь дело, а не на бумаге, которую вы все еще можете делать, что вы хотите сделать 🙂

  • Внедрите View.OnTouchListener для обоих видов
  • Для полупрозрачного просмотра любых событий касания, которые вы получаете, верните FALSE в методе onTouch
  • Android передаст событие касания к вашему основному виду.

Я получил ответ. Добавление строки getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); в onCreate во второй верхней активности (что прозрачно сделал трюк).

Выше решения есть проблема. После использования над всем окном окно переходит к фону. Поэтому, если вам нужен полный контроль, лучше расширьте макет, например Framelayout, и переопределите «onTouchEvent» и получите контактное местоположение с помощью методов event.getX () и event.getY () и верните false, где вы хотите передать событие касания. Он будет передан родительскому представлению.

  • Получение координат представления относительно корневого макета
  • Android Parcelable - RetailerOrderActivity.java возвращает null
  • Geocoder.getFromLocation бросает IOException на эмулятор Android
  • Как открыть второе действие при нажатии кнопки в приложении для Android
  • Android Studio работает медленно (как ускорить)?
  • Как поддерживать несколько версий Android в коде?
  • Объявление активности в AndroidManifest.xml
  • Как распечатать возвращенное сообщение от HttpResponse?
  • Добавьте «Просмотреть больше» в конце текстового просмотра после трех строк
  • Скрыть нижний колонтитул в ListView?
  • Запуск автономной библиотеки на Android L. Ошибка: поддерживаются только независимые исполняемые файлы (PIE)
  • Interesting Posts

    Выполнить метод при запуске весной

    Пользовательский формат даты с плагином проверки jQuery

    Как развернуть mutiple web-приложение в tomcat, которое будет работать на разных портах?

    обрабатывать ссылку на текстовое изображение в приложении для Android

    Пользовательский стол WooCommerce

    Как получить текущий URL страницы в MVC 3

    Пролог: человек является родным братом?

    Как узнать, какая версия HDMI поддерживает моя система – Ubuntu Linux (10.10)

    Android: Как передать объект Parcelable в цель и использовать getParcelable метод bundle?

    Не удалось передать артефакт org.apache.maven.plugins: maven-surefire-plugin: pom: 2.7.1 из / в центральный (http://repo1.maven.org/maven2)

    Могу ли я обновить OEM-версию Windows XP до Windows 8, а затем перенести ее на другой компьютер?

    TypeError: window.initMap не является функцией

    Spring Boot War развернут в Tomcat

    Какие методы «clearfix» можно использовать?

    Какова максимальная безопасная температура для HD Radeon 6870?

    Давайте будем гением компьютера.