android .getTop() 返回 0.0

VaM*_*ose 6 java xml android

我正在开发一个 android 锁屏应用程序。我从另一个线程中得到了想法,以检查手指按下位置的坐标与我设置的图像按钮的坐标。

我正在尝试使用.getTop()and获取图像按钮的坐标,.getLeft()但两者都返回 0.0(因为它们是浮点数,而不是 int)。

为什么是这样?我是 android 开发的新手,如果我遗漏了一些明显的东西,我很抱歉。

另外,我在某处读到在之后.getTop()将无法工作,setContentView(R.layout.layoutname)但如果我将它放在上面,setContentView(...)那么应用程序就会崩溃。

有没有另一种方法来获取图像按钮的坐标,或者获取表格单元格的坐标和边界会更好/更容易吗?我该怎么做?

提前致谢 :)

S.D*_*.D. 5

您需要将视图添加到布局并显示(必须至少运行一次布局传递和测量传递。)。此外,如此获得的坐标是相对于视图的直接父级的。

可以通过调用方法 getLeft() 和 getTop() 来检索视图的位置。前者返回表示视图的矩形的左坐标或 X 坐标。后者返回表示视图的矩形的顶部坐标或 Y 坐标。这些方法都返回视图相对于其父视图的位置。例如,当 getLeft() 返回 20 时,这意味着视图位于其直接父级左边缘右侧 20 像素处。

  • 为了确保视图已显示调用 onWindowFocusChanged(boolean hasFocus) 中的方法 (3认同)

ven*_*lee 2

imagebutton.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
Run Code Online (Sandbox Code Playgroud)

在 imagebutton.getTop() 之前尝试一下吗?