如何获得与整个屏幕对应的屏幕坐标,而不是触摸的视图?

Ale*_*lex 15 android screen coordinates android-view

我通过处理一个View Item的触摸事件从我的屏幕获取真实(x,y)时遇到了一些麻烦.

我有这个:

在此输入图像描述

当我触摸View项目时,它会给我坐标位于左上角的原点,如果我将手指滑出视图,它会给我负坐标(向上或向左滑动时). 在此输入图像描述 在此输入图像描述

我想在屏幕上获取View位置,将其添加到我得到的(x,y)坐标,因此最终结果是(0,0)位于整个屏幕的左上角. 在此输入图像描述

我还需要总的屏幕尺寸,以便我知道手指何时位于右下角.

我怎样才能做到这一点?

谢谢.

Tim*_*Tim 16

MotionEvent类有getX()getY()方法,其相对收益的坐标的观点,因为你已经发现.

然而,它也有getRawX()getRawY()方法,根据文件说:

返回此事件的原始X(或Y)坐标.对于屏幕上的触摸事件,在调整包含窗口和视图之前,这是事件在屏幕上的原始位置.

听起来这就是你所追求的.


Vik*_*ram 6

尝试在屏幕上加载视图后使用此功能.

int[] location = new int[2];
View.getLocationOnScreen(location); 
Log.v(Common.TAG,"left: "+ location[0]);
Log.v(Common.TAG,"top: "+ location[1]);
Run Code Online (Sandbox Code Playgroud)