2013-09-14 4 views
5

Мы можем получить координаты позиции касания на экране, используя следующие функции:Как определить положение касания на экране андроида?

public boolean onTouchEvent(MotionEvent event){ 
    float x_forOnTouch = event.getX(); 
    float y_forOnTouch = event.getY(); 

Что именно возвращается функциями getX() и getY()? Возвращает ли значения пикселей? Когда палец касается положения экрана, он, вероятно, коснется нескольких пикселей. Итак, что именно возвращает функция?

Опять же, давайте предположим, что в этой области я потрогать пальцем, есть несколько пикселей на экране, как показано ниже:
enter image description here

Предположим, что мне нужно нажать и перетащить точку на пиксель 1 , но область, к которой касается мой палец, покрывает пиксели 1 и 2. Как я могу точно определить, какой пиксель был нажат, чтобы я мог щелкнуть и перетащить пиксель 1 или 2, когда мне это нужно?

+1

проверить это http://developer.android.com/reference/android/view/MotionEvent.html#getXPrecision() – JRowan

ответ

5

Ну, что может помочь вам: http://developer.android.com/reference/android/view/MotionEvent.html

Я полагаю значения находятся в центре сгустка или области прикосновением. Помните, что это может быть инструмент, похожий на мышь или стилус, чтобы область была более точной. У него есть методы и константы для предполагаемой области пальца, который касается.

Ссылка имеет так много методов по этому вопросу, что я не буду копировать и вставлять, как это хорошо документировано, поэтому я думаю, что вам нужно ее прочитать.

Некоторые потом: getPressure() getSize() getPointerCount() getXPrecision()

О возвращенного значения, Раздел Типы устройств даст много информации.

Некоторые из них соответствующие:

интерпретации содержимого MotionEvent значительно варьируется в зависимости от класса источника устройства.

На указательных устройств с классом источника SOURCE_CLASS_POINTER, такие как сенсорные экраны, указатель координат указать абсолютные позиции, такие как точки зрения X/Y координационную. Каждый полный жест представлен последовательностью событий движения с действиями, которые описывают переходы и движения состояния указателя.

На устройствах с джойстиком с исходным классом SOURCE_CLASS_JOYSTICK координаты указателя определяют абсолютное положение осей джойстика. Значения оси джойстика нормированы к диапазону -1.0 до 1,0

+1

есть ли простое объяснение, почему они возвращают float вместо int? – user13267

+0

+1 - хороший ответ – Sergio

+0

@ user13267 Я не знал, если вы его получите, так что, конечно. В случае с джойстиком он вернет результат от -1,0 до 1,0, поэтому потребуется поплавок. –

Смежные вопросы