获取按钮的精确坐标 - Android

时间:2014-02-19 10:29:09

标签: android

我的活动中有一个按钮。我怎样才能获得它的所有4个坐标?

如何获得x1,x2,y1和y2?对不起,如果它太笨了。

谢谢!

3 个答案:

答案 0 :(得分:2)

PointF y1 = new PointF(button.getX(), button.getY());
PointF y2 = new PointF(button.getX(), button.getY() + button.getWidth());
PointF x1 = new PointF(button.getX() - button.getHeight(), button.getY());
PointF x2 = new PointF(button.getX() - button.getHeight(), button.getY() + button.getWidth());

我相信@LokiSinclair提到的getTop()getBottom()getRight()getLeft()方法也可以使用。请务必在onWindowFocusChanged()中调用这些方法,因为调用这些方法会在onCreate()onStart()中产生0。

答案 1 :(得分:2)

你可以使用这些方法;视图类中的getTop()getLeft()getBottom()getRight()

来自官方文档:

  

位置

     

视图的几何形状是矩形的几何形状。视图具有位置,表示为一对>左侧和顶部坐标以及两个尺寸,表示为宽度和高度。该   位置和尺寸单位是像素。

     

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

     

此外,还提供了几种方便的方法来避免不必要的计算,   即getRight()和getBottom()。这些方法返回右边的坐标和   表示视图的矩形的下边缘。例如,调用getRight()是   类似于以下计算:getLeft()+ getWidth()(有关详细信息,请参阅大小   有关宽度的信息。)

有一点需要注意的是,在尝试获取位置详细信息之前,必须至少绘制一次视图。

答案 2 :(得分:0)

取决于你想要什么。

  1. 您可以使用getTranslationX()和getTranslationY()方法在屏幕中获取视图的原始位置,而不管属于您视图的布局。

  2. getX()和getY()方法将视图的位置分别视为视图的父布局。

  3. 如果您决定哪种方法适合您的问题,您将把方法与view.getWidth和view.getHeight方法结合起来,以获得您想要的值。