GestureDetector имеет методы для одного пальца, а также для нескольких пальцев. Как я могу игнорировать один палец, когда на экране несколько пальцев, и передать ему только один палец?Android multitouch - игнорировать один палец
0
A
ответ
1
Сомневаюсь, что вы можете это сделать ... Детекторы жеста должны прослушивать заранее определенное событие касания/движения. Если на экране слишком много пальцев, предопределенный жест не произойдет ...
Вы можете, однако, отслеживать регулярные события с несколькими касаниями и следовать только, скажем, первому пальцу, касающемуся экрана , Подробное описание вы можете увидеть в документах here.
После нескольких пальцев коснуться экрана, генерируемый MotionEvent
будет содержать отдельные указатели на каждой из них:
private int mActivePointerId;
public boolean onTouchEvent(MotionEvent event) {
....
// Get the pointer ID
mActivePointerId = event.getPointerId(0);
// ... Many touch events later...
// Use the pointer ID to find the index of the active pointer
// and fetch its position
int pointerIndex = event.findPointerIndex(mActivePointerId);
// Get the pointer's current position
float x = event.getX(pointerIndex);
float y = event.getY(pointerIndex);
}
я не знаю, что вы пытаетесь сделать, но «не обращая внимания на палец» Безразлично Это звучит неплохо. все еще, 'GestureDetector', похоже, нацелен на обнаружение жестов для одного« пальца ». – takecare
Я хотел бы повторно использовать код, который у меня есть в моем классе, который реализует GestureDetector. Хотя это не очень хорошая идея, мне это действительно нужно :) –
Я до сих пор не понимаю вашу потребность «игнорировать палец». во всяком случае, вы должны иметь возможность получать данные относительно разных указателей из одного «MotionEvent». – takecare