Как получить контактное местоположение на android [duplicate]

Вы можете использовать это:

df.dropna(subset=['EPS'], how='all', inplace = True)
72
задан Alex 13 August 2010 в 13:30
поделиться

3 ответа

Вы можете реализовать дедуктор Gesture, и в своем onfling-событии вы получите два параметра из класса MotionEvent. Вы можете получить от них координаты x и y. Посмотрите на это сообщение для более подробной информации

Обнаружение жевательной жесты на макете сетки

0
ответ дан Community 20 August 2018 в 18:38
поделиться
  • 1
    событие onTouch - лучший способ сделать это. – stealthcopter 13 August 2010 в 14:31
@Override
    public boolean onTouch(View v, MotionEvent event) {
       float x = event.getX();
       float y = event.getY();
       return true;
    }
11
ответ дан nsL 20 August 2018 в 18:38
поделиться

Дополнительный ответ

С учетом 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();

Связано

13
ответ дан Suragch 20 August 2018 в 18:38
поделиться
  • 1
    Это работает, однако в моем тестировании представление, к которому добавлен слушатель, не должно охватываться другими представлениями. Чтобы получить абсолютные координаты затронутой позиции на экране, я добавил фреймэлей как базовый вид, а поверх него - представление с прослушивателем. Не забудьте return false, иначе он будет потреблять прикосновение. – lenooh 6 January 2018 в 23:33
  • 2
    @lenooh, getRawX() и getRawY() должны возвращать абсолютные координаты положения касания при любом просмотре, к которому добавлен слушатель. Но вы правы, если на нем есть другое представление, которое возвращает true, тогда никакие более низкие представления не будут уведомлены о событиях касания. – Suragch 7 January 2018 в 13:52
  • 3
    Сурагч: точно. Поскольку я использую FrameLayout, я устанавливаю представление в "matchParent & quot; поэтому getX() и getY() работают просто отлично (нет необходимости в getRawX/Y()). – lenooh 7 January 2018 в 14:52
Другие вопросы по тегам:

Похожие вопросы: