Как получить положение Touch в андроиде?

Мне нужно получить начальную позицию касания (X, Y), коснуться позиции перемещения и коснуться конечной позиции экрана в андроиде.

@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. Следите за этим сообщением для получения более подробной информации

Обнаружение движения движения по сетке

  • Разработка Android Homescreen
  • Остановить ScrollView от установки фокуса на EditText
  • Почему я не могу использовать метод overulateViewHolder override?
  • Как я могу использовать getSystemService в classе non-activity (LocationManager)?
  • Узнайте, прокручивается ли ListView до конца?
  • Предупреждение Google Play и OpenSSL
  • Размер подсказки для Android EditText
  • Отображение текущего времени и даты в приложении для Android
  • Причина для активов и ресурсов в Android
  • spannable на android для textView
  • Как отображать всплывающее окно при наложении наложения в андроиде?
  • Interesting Posts

    Является ли std :: vector копированием объектов с помощью push_back?

    Могу ли я установить SSD SATA 6 Гбит / с на ноутбук, который поставляется с жестким диском SATA 1,5 Гбит / с?

    Использование UDF в Excel для обновления рабочего листа

    Chromebook: как увеличить размер графического интерфейса веб-браузера Chrome?

    Мой Dell Inspiron N5050 не подключается к беспроводной сети

    сравнение значений float / double с использованием оператора ==

    WIndows Vista для обновления совместимости с драйверами устройств Windows 10

    Первый подход WSDL: как указать разные имена для wsdl: port и wsdl: binding?

    Скрыть открытые ярлыки на рабочем столе без административных привилегий

    Использование Spring MVC Test для модульного тестирования многостраничного запроса POST

    Передача массива структур в C

    Есть ли способ просмотреть, какие приложения обращаются к Интернету в Mac OS X?

    Будет ли устройство USB 2.0 быстрее подключаться к порту USB 3.0?

    Windows 7 Новый SSD SATA AHCI?

    Как исправить ошибку: разметка в документе, следующая за корневым элементом, должна быть хорошо сформирована

    Давайте будем гением компьютера.