安卓:MotionEvent的x和y像素没有转换到图像坐标

问题描述:

我使用的getX()和的getY()函数在MotionEvent得到的X和当用户触摸屏幕y位置。我也使用android相机捕捉图像。这些图像是480x640。我的目的是让用户画一个盒子,并获取x,y的开始和结束位置,并使用它们来创建一个盒子并裁剪图像。 不幸的是,即使用户使用android屏幕(显示来自摄像机的视频)将正确的区域框出来,MotionEvent的坐标与图像上的正确位置完全无关。有时,我从MotionEvent获得的x,y坐标实际上超过了480或640. android屏幕的尺寸是否与图像的尺寸不同?或者MotionEvent的x,y位置与其他东西相对应安卓:MotionEvent的x和y像素没有转换到图像坐标

+0

http://*.com/a/3152172/755804 – 18446744073709551615 2016-02-06 03:25:29

返回的坐标取决于所使用的指针,但一般都在屏幕坐标中,所以要从视图中获取需要用视图抵消的相对坐标位置。

参见:

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()

+0

没有工作。它实际上导致应用程序崩溃。我发现我的问题只是拍摄的图像和应用程序屏幕之间的分辨率差异。不管怎样,谢谢! – Nageen 2013-04-09 18:12:11