Получение неправильных координат на холсте на WVGA800

#android

#Android

Вопрос:

 @Override
    public boolean onTouchEvent(MotionEvent event) {

        X = (int) event.getX();
        Y = (int) event.getY();

        switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:

            Toast.makeText(context, X   "-"  Y,
                    Toast.LENGTH_LONG).show();
            break;
        }

        return true;
    }
  

Я пытаюсь использовать этот код, чтобы получить координаты x и y холста на WVGA800,
Версия Android 2.1

Но я не получаю точных координат экрана.

Ответ №1:

Вы хотите получить координаты экрана? Ваш код фактически получает координаты (сообщаемые событием) относительно вашего представления / холста. Если вам нужны координаты экрана, попробуйте использовать View.getLocationOnScreen, чтобы вычислить его на основе координат просмотра.

 X = (int) event.getX();
Y = (int) event.getY();
int[] position = new int[2];
position[0] = X;
position[1] = Y;
this.getLocationOnScreen(position);
  

Ответ №2:

Попробуйте это:

  switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN:
        X = (int) event.getX();
        Y = (int) event.getY();

        Toast.makeText(context, X   "-"  Y,
                Toast.LENGTH_LONG).show();
        break;
    }

    return true;
}
  

Вы получите координаты положения, в котором вы приземлились.

Комментарии:

1. вы получите координаты положения, в котором вы приземлились