Как получить положение Touch в андроиде?
Мне нужно получить начальную позицию касания (X, Y), коснуться позиции перемещения и коснуться конечной позиции экрана в андроиде.
- Как сделать снимок экрана и поделиться им программно
- Создать новый проект на Android, Ошибка: Студия Неизвестный хост 'services.gradle.org'
- Передача растрового изображения в другую информацию о получении сообщения на логарифме
- Потоковое аудио с URL-адреса в Android с помощью MediaPlayer?
- Android: переключения экранов с новой активностью или просто изменение содержимого
- Местоположение SDK не найдено. Определите местоположение с помощью sdk.dir в файле local.properties или с переменной окружения ANDROID_HOME
- Строка состояния становится белой и не отображает содержимое за ней
- Какова цель идентификатора элемента в Android-адаптере ListView?
@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; }
Три случая заключаются в том, что вы можете реагировать на различные типы событий, в этом примере нажмите или перетащите или снова потяните палец.
Дополнительный ответ
С учетом OnTouchListener
private 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();
Связанный
- Как поступают события Android touch?
@Override public boolean onTouch(View v, MotionEvent event) { float x = event.getX(); float y = event.getY(); return true; }
Вы можете реализовать дедуктор Gesture, и в своем onfling-событии вы получите два параметра из classа MotionEvent. Вы можете получить от них координаты x и y. Следите за этим сообщением для получения более подробной информации
Обнаружение движения движения по сетке