Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

Видимость

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

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

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

Не унывайте, так как это представление, с которым вы будете иметь дело, а не документ, который вы все еще можете сделать, что вы хотите сделать:)

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

Ответ 2

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

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