Android 什么会导致locationOnScreen_x与View.getX()返回的值不同?
我试图使用SurfaceView手动绘制一些围绕一些UI视图的边框(为了练习),并使用Android 什么会导致locationOnScreen_x与View.getX()返回的值不同?,android,android-layout,Android,Android Layout,我试图使用SurfaceView手动绘制一些围绕一些UI视图的边框(为了练习),并使用View.getX()、getY()、getHeight()、和getWidth()确保在不同的屏幕上正确绘制线条 问题是边界的绘制偏离了它们需要的位置。线的相对位置是正确的,但它们只需要向下和向右移动 我通过使用Android设备监视器获取屏幕上的“布局”>location\u x和“绘图”>x变量来调查这个问题,并注意到它们是不同的location屏幕上显示70的正确值,而x显示0.0。我假设getX()返
View.getX()
、getY()
、getHeight()
、和getWidth()
确保在不同的屏幕上正确绘制线条
问题是边界的绘制偏离了它们需要的位置。线的相对位置是正确的,但它们只需要向下和向右移动
我通过使用Android设备监视器获取屏幕上的“布局”>location\u x
和“绘图”>x
变量来调查这个问题,并注意到它们是不同的location屏幕上显示70的正确值,而x
显示0.0。我假设getX()
返回x
值,这显然是我不想要的
那么,我的问题分为两部分:
如何以编程方式检索屏幕上的位置
哪些因素会导致x
与屏幕上的位置\u x
不同
我最终解决了问题,因为我意识到getX()
返回相对于父视图的X值,而不是相对于设备屏幕的X值