Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 什么会导致locationOnScreen_x与View.getX()返回的值不同?_Android_Android Layout - Fatal编程技术网

Android 什么会导致locationOnScreen_x与View.getX()返回的值不同?

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

我试图使用SurfaceView手动绘制一些围绕一些UI视图的边框(为了练习),并使用
View.getX()
getY()
getHeight()
、和
getWidth()
确保在不同的屏幕上正确绘制线条

问题是边界的绘制偏离了它们需要的位置。线的相对位置是正确的,但它们只需要向下和向右移动

我通过使用Android设备监视器获取屏幕上的“布局”>
location\u x
和“绘图”>
x
变量来调查这个问题,并注意到它们是不同的
location屏幕上显示70的正确值,而
x
显示0.0。我假设
getX()
返回
x
值,这显然是我不想要的

那么,我的问题分为两部分:

  • 如何以编程方式检索屏幕上的位置
  • 哪些因素会导致
    x
    屏幕上的位置\u x
    不同

  • 我最终解决了问题,因为我意识到
    getX()
    返回相对于父视图的X值,而不是相对于设备屏幕的X值