4 ответов:
@Override public boolean onTouchEvent(MotionEvent event) { int x = (int)event.getX(); int y = (int)event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_MOVE: case MotionEvent.ACTION_UP: } return false; }эти три случая таковы, что вы можете реагировать на различные типы событий, в этом примере нажав или перетащив или подняв палец снова.
дополнительный ответ
предоставлена
OnTouchListenerprivate View.OnTouchListener handleTouch = new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.i("TAG", "touched down"); break; case MotionEvent.ACTION_MOVE: Log.i("TAG", "moving: (" + x + ", " + y + ")"); break; case MotionEvent.ACTION_UP: Log.i("TAG", "touched up"); break; } return true; } };установить на какой-то вид:
myView.setOnTouchListener(handleTouch);это дает вам координаты события касания относительно представления, которому назначен прослушиватель касания. Верхний левый угол вида
(0, 0). Если вы переместите палец над видом, тоyбудет отрицательным. Если вы переместите палец влево от вида, тоxбудет отрицательным.int x = (int)event.getX(); int y = (int)event.getY();если вы хотите координаты относительно верхнего левого угла экрана устройства, затем используйте необработанные значения.
int x = (int)event.getRawX(); int y = (int)event.getRawY();по теме
@Override public boolean onTouch(View v, MotionEvent event) { float x = event.getX(); float y = event.getY(); return true; }
вы можете реализовать дедуктор жестов, и на его событии onfling вы получаете два параметра из класса MotionEvent. Вы можете получить свои координаты x и y от них. Обратите внимание на этот пост для более подробной информации
Comments