getWindowManager (). getDefaultDisplay (). getHeight () и MotionEvent.getY () возвращает разные значения? - PullRequest
3 голосов
/ 04 октября 2011

У меня проблемы с тем, как работает мой экран. Я могу получить высоту экрана:

getWindowManager().getDefaultDisplay().getHeight(); // == 800 

Когда я нажимаю на экран, я получаю определенное значение:

public boolean onTouch(View v, MotionEvent event){
........
........
      (int) (event.getY(pointerIndex)); // == 701

Проблема, которую я имею, это то, что я больше всего могу получить на оси Y, это 700 !!!

Есть предложения, что происходит?

Если вам нужна дополнительная информация, пожалуйста, спросите.

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Хорошо, я копался там довольно долго, но я нашел решение. Спасибо этой теме:

Motionevent.getX и getY

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

getWindowManager().getDefaultDisplay().getHeight(); // == 800 

Я получил фактическую высоту сенсорного экрана из вида

public boolean onTouch(View v, MotionEvent event){
v.getHeight() // == 724
v.getWidth() // == 480

Надеюсь, это поможет бедным потерянным душам !!

0 голосов
/ 19 января 2012

Я знаю решение проблемы. Это вызвано заголовком и строкой заголовка. Они учитываются в случае display.getHeight (). Вы можете удалить их, это зависит только от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...