Android: разница между ACTION_UP и ACTION_POINTER_UP

Из документа android doc, я действительно не понимаю разницу между ACTION_UP и ACTION_POINTER_UP. http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_DOWN

В основном я хочу захватить событие, когда один палец выпущен с экрана (даже если он еще может касаться его)

благодаря!

Я полагаю, что это связано с добавлением Multi-touch, ACTION_UP находится с API уровня 1, но ACTION_POINTER_UP был добавлен в API Level 5, когда был добавлен мультитач.

Результат, который вы получите, будет зависеть от того, какой метод вы вызываете, getAction () вернет ACTION_UP, тогда как getActionMasked () даст ACTION_POINTER_UP, но также позволит вам вызвать getActionIndex (), чтобы узнать, какой из указателей с несколькими касаниями только что был поднят. Я думаю, это то, что вы хотите сделать.

Начните здесь, если вы еще этого не читали: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html

Android думает о событиях касания с точки зрения жестов. Жест в этом смысле включает в себя все события от первого пальца, который касается экрана до последнего пальца, который покидает экран. Целая последовательность событий одного жестов всегда отправляется на ту же точку зрения, которая была выбрана во время начального ACTION_DOWN, если родитель не перехватил поток событий по какой-либо причине. Если родитель перехватывает поток событий ребенка, дочерний элемент получит ACTION_CANCEL.

Если вы работаете с событиями мультитач, всегда используйте значение, возвращаемое getActionMasked (), чтобы определить действие. Если вам не нужен мультитач или вы работаете со старой версией платформы, вы можете игнорировать события ACTION_POINTER_ *.

  • ACTION_DOWN – это первый палец, касающийся экрана. Это начинает жест. Данные указателя для этого пальца всегда находятся в индексе 0 в MotionEvent.
  • ACTION_POINTER_DOWN – для дополнительных пальцев, которые входят в экран за пределами первого. Данные указателя для этого пальца находятся в индексе, возвращаемом getActionIndex ().
  • ACTION_POINTER_UP отправляется, когда палец покидает экран, но по крайней мере один палец все еще касается его. Последний пример данных о пальце, который поднялся, находится в индексе, возвращаемом getActionIndex ().
  • ACTION_UP отправляется, когда последний палец покидает экран. Последний образец данных о пальце, который поднялся, находится в индексе 0. Это завершает жест.
  • ACTION_CANCEL означает, что весь жест был прерван по какой-то причине. Это завершает жест.
Intereting Posts
Требовать пароль для удаления / удаления приложения Как получить доступ к classes.dex приложения для Android? Как удалить расстояние Horizontal GridLayoutManager recyclerview android Ошибка сборки Android в Crosswalk Является ли конструктором частного внутреннего класса также частным? Использование нестандартных настроек в PreferenceActivity Несколько вызовов getView () в GridView Есть ли способ использовать пользовательское хранилище ключей при создании приложения для Android в режиме отладки в режиме ant? Метод ContentResolver notifyChange уведомляет также о деталях Uri's? Устаревший SCREEN_DIM_WAKE_LOCK, есть ли какие-нибудь проблемы? Сетевой провайдер Android LocationManager возвращает null Как WhatsApp может быть сквозным зашифрованным, когда WhatsApp Web все еще работает Необязательный принудительный прокрутка вниз в RecyclerView после вызова notifyItemMoved () MapView – Android Как настроить эмулятор под управлением API 25 с использованием матрицы построения на Travis CI?