Я использую функции getX() и getY() в MotionEvent, чтобы получить координаты x и y, где пользователь коснулся экрана. Я также делаю снимки с помощью камеры Android. Эти изображения 480x640. Мое намерение состоит в том, чтобы пользователь нарисовал поле и получил начальную и конечную позиции x, y и использовал их для создания поля и обрезки изображения. К сожалению, даже если пользователь выделяет правильную область с помощью экрана Android (который показывает видео с камеры), координаты из MotionEvent вообще не относятся к правильному местоположению на изображении. Иногда координаты x, y, которые я получаю от MotionEvent, на самом деле больше 480 или 640. Отличаются ли размеры экрана Android от изображения? Или позиции x, y из MotionEvent соответствуют чему-то еще
Android: пиксели x и y MotionEvent не преобразуются в координаты изображения
comment
stackoverflow.com/a/3152172/755804
- person 18446744073709551615   schedule 06.02.2016
Ответы (1)
Возвращаемые координаты зависят от используемого указателя, но, как правило, находятся в координатах экрана, поэтому, чтобы получить относительные координаты из представления, вам необходимо сместить положение представления.
Видеть:
http://developer.android.com/reference/android/view/MotionEvent.html#AXIS_X
Для смещения представления используйте:
https://developer.android.com/reference/android/view/View.html#getLeft() https://developer.android.com/reference/android/view/View.html#getTop()
person
Nick Palmer
schedule
04.04.2013
Не работает. Это фактически приводит к сбою приложения. Я понял, что моя проблема была просто в разнице в разрешении между сделанным изображением и экраном приложения. В любом случае, спасибо!
- person Nageen; 09.04.2013