Получение всех MotionEvents с WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - PullRequest
4 голосов
/ 17 июля 2011

Мой вопрос относится непосредственно к этому вопросу .Ответ на этот вопрос показывает, как можно создать ViewGroup, встроить его в WindowManager и позволить WindowManager перехватывать MotionEvent с onTouchEvent(MotionEvent event).WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - это флаг, который позволяет этому ViewGroup получать MotionEvent с.Однако, согласно документации, этот флаг

... не получит полный жест вниз / перемещение / вверх

Я хочу знать, есть ли обходили способ, которым я могу получить все сенсорные события, включая вниз, двигаться и вверх.Подтверждение концепции есть в приложении Wave Launcher , которое использует ту же концепцию, но может получить более одного ACTION_OUTSIDE события.

Ответы [ 2 ]

3 голосов
/ 17 августа 2011

Нет, вы не можете, и это очень много задумано.

Wave Launcher не делает этого, у него есть элемент пользовательского интерфейса, с которого вы начинаете свой жест касания, а затем, как при стандартной даже диспетчеризации, все события касания доставляются в окно первой точки вниз до финального подъема.

2 голосов
/ 24 сентября 2012

Я понимаю, что это старый вопрос, но я наткнулся на него, пытаясь сделать что-то подобное.Я также нашел это, надеюсь, это кому-нибудь пригодится: http://www.section465.com/code_OverlayView/

Чтобы создать представление наложения, при настройке параметров LayoutParams необходимо установить тип TYPE_SYSTEM_OVERLAY и использовать флаг FLAG_WATCH_OUTSIDE_TOUCH,Это создает проблему, потому что, как гласит документация Android: «вы не получите полный жест вниз / перемещение / вверх, только расположение первого вниз как ACTION_OUTSIDE».Чтобы получить полный массив событий касания, вам нужно использовать тип TYPE_SYSTEM_ALERT, но это заставит оверлей захватить экран и прекратить взаимодействие с другими элементами.Решение состоит в том, чтобы использовать TYPE_SYSTEM_OVERLAY и TYPE_SYSTEM_ALERT и переключаться между ними, изменяя тип LayoutParams по мере необходимости.

...