如何在Android中获取视图的x,y坐标?

Joy*_*son 5 android

我使用以下代码获取布局中视图的位置(x,y)坐标。我有一个按钮和以下代码来获取其在scren上的位置。另请注意,此语句已在setContentView()之后被调用。

Toast.makeText(MainActivity.this, button1.getTop(),Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

以下是错误:

 E/AndroidRuntime(11630): android.content.res.Resources$NotFoundException: String resource ID #0x196
Run Code Online (Sandbox Code Playgroud)

我如何在屏幕上获取视图的位置(在我的情况下为按钮)(x,y坐标)?

War*_*ith 5

您使用的方法期望整数值作为的引用R.string.whatever。将getTop()返回值强制转换为String应该可以工作。

Toast.makeText(MainActivity.this, String.valueOf(button1.getTop()), Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

要获取按钮的x / y(自API 11开始):

Toast.makeText(MainActivity.this, (int)button1.getX() + ":" + (int)button1.getY(), Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

文件

此视图的可视x位置(以像素为单位)。

对于低于11的API,您采用的是正确的方法:getTop()等同于getY()但没有可能的动画/翻译。getLeft()getX()具有相同限制的等价物。