Android MotionEvent :узнать, произошло ли движение вне поля зрения

У меня есть кнопка и прикрепленный к ней OnTouchListener. Как я могу определить, произошло ли движение (при нажатии пользователем кнопки )внутри или снаружи? И event.getAction (), и event.getActionMasked ()возвращают только 0, 1 или 2, то есть ActionDown, ActionUp, ActionMove соответственно. Есть константа MotionEvent.ACTION _OUTSIDE, которая равна 4, но почему-то я ее не получаю, даже если я перетаскиваю касание за пределы кнопки -Я все равно получаю 2 от обоих методов. В чем проблема?

УПД:Я нашел хорошее решение -просто проверьте состояние фокуса в представлении после ДЕЙСТВИЯ _UP. Если он не сфокусирован, это означает, что движение произошло вне поля зрения.

8
задан Yury Pogrebnyak 24 June 2012 в 08:17
поделиться