Подтвердить что ты не робот

Метод Touch Release в Android

Я пытаюсь захватить событие TouchRelease в Android. Я видел, что event.getAction() возвращает тип действия. Но внутри onTouchEvent он всегда дает действие ACTION_DOWN.
Вы знаете, как захватить событие сенсорного релиза.

public boolean onTouchEvent(MotionEvent event) {
  Log.d(TAG,""+event.getAction());
  return super.onTouchEvent(event);
}
4b9b3361

Ответ 1

У вас есть ACTION_UP: http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_UP

View view = new View();

view.setOnTouchListener(new OnTouchListener () {
  public boolean onTouch(View view, MotionEvent event) {
    if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
      Log.d("TouchTest", "Touch down");
    } else if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
      Log.d("TouchTest", "Touch up");
    }
    return true;
  }
}

Ответ 2

public boolean onTouchEvent(MotionEvent event) {
        Log.d(TAG,""+event.getAction());
        return true; // Required for recieving subsequent events (ACTION_MOVE, ACTION_UP)
}

Ответ 3

У меня была такая же проблема с классом SurfaceView. Вот как я его исправил: после включения вашего свойства просмотра long clickable (через setLongClickable (true)), он должен работать.

Ответ 4

view.setOnTouchListener(new OnTouchListener () {
  public boolean onTouch(View view, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            // release
            return false;
        } else if(event.getAction() == MotionEvent.ACTION_DOWN) {
            // pressed
            return true;
        }
        return super.onTouchEvent(event);
    }