我的活动中有一个按钮。我怎样才能获得它的所有4个坐标?
如何获得x1,x2,y1和y2?对不起,如果它太笨了。
谢谢!
答案 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)
取决于你想要什么。
您可以使用getTranslationX()和getTranslationY()方法在屏幕中获取视图的原始位置,而不管属于您视图的布局。
getX()和getY()方法将视图的位置分别视为视图的父布局。
如果您决定哪种方法适合您的问题,您将把方法与view.getWidth和view.getHeight方法结合起来,以获得您想要的值。