2015-07-13 8 views
0

GestureDetector имеет методы для одного пальца, а также для нескольких пальцев. Как я могу игнорировать один палец, когда на экране несколько пальцев, и передать ему только один палец?Android multitouch - игнорировать один палец

+1

я не знаю, что вы пытаетесь сделать, но «не обращая внимания на палец» Безразлично Это звучит неплохо. все еще, 'GestureDetector', похоже, нацелен на обнаружение жестов для одного« пальца ». – takecare

+0

Я хотел бы повторно использовать код, который у меня есть в моем классе, который реализует GestureDetector. Хотя это не очень хорошая идея, мне это действительно нужно :) –

+0

Я до сих пор не понимаю вашу потребность «игнорировать палец». во всяком случае, вы должны иметь возможность получать данные относительно разных указателей из одного «MotionEvent». – takecare

ответ

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); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^