Метод Touch Release в Android

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

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

Solutions Collecting From Web of "Метод Touch Release в Android"

У вас есть 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; } } 
 public boolean onTouchEvent(MotionEvent event) { Log.d(TAG,""+event.getAction()); return true; // Required for recieving subsequent events (ACTION_MOVE, ACTION_UP) } 

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

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