我在 MotionEvent 中使用 getX() 和 getY() 函数来获取用户触摸屏幕的 x 和 y 位置。我也在使用安卓相机拍摄图像。这些图像是 480x640。我的意图是让用户绘制一个框并获取开始和结束 x,y 位置并使用它们创建一个框并裁剪图像。不幸的是,即使用户使用 android 屏幕(显示来自摄像头的视频)将正确的区域框起来,来自 MotionEvent 的坐标也与图像上的正确位置完全不相关。有时我从 MotionEvent 获得的 x,y 坐标实际上超过 480 或 640。android 屏幕的尺寸与图像的尺寸不同吗?或者 MotionEvent 中的 x,y 位置是否对应于其他东西
问问题
1901 次
1 回答
0
返回的坐标取决于正在使用的指针,但通常在屏幕坐标中,因此要从视图获取相对坐标,您需要偏移视图位置。
看:
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()
于 2013-04-04T18:28:03.930 回答