2014-10-15 2 views
0

Здравствуйте,MotionEvent.getY() возвращает ноль намного выше видимого экрана

У меня есть TextureView в верхней части моего макета. Для этого примера это портретная ориентация. Устройство для тестирования - это галактическая нота 2 ( 4.1.2). В этом примере мне нужно различать лицо устройства (где логотип и камера Samsung) и дисплей (видимые пиксели).

Когда я получаю события касания в TextureView, я использую MotionEvent.getY() для извлечения Y-компонента касания. Надеюсь, что .getY() вернет нуль в верхней части представления. Кажется, это не так. .getY() возвращается близко к нулю, когда я касаюсь самой верхней части устройства (над логотипом Samsung). На границе дисплея я получаю значение .getY() около 50 (я считаю, что он должен быть равен нулю). Я использую тему NoTitleBar Fullscreen, если это имеет какой-то эффект. Я использовал несколько методов, чтобы попытаться получить смещение представления (.getTop, getLocationInWindow и т. Д.). Все они возвращают ноль для x и y. Я предполагаю, что это будет изменяться для разных устройств (hardcoding значение не будет работать).

Это ошеломляет мой разум. Есть идеи?

Darf

ответ

0

Вы пробовали View.getLocationOnScreen()?

+0

Да. Возвращает 0,0. Я мог бы понять это, если в местах с верхней части дисплея появятся отрицательные значения. Но это не имеет никакого смысла. – darf

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