Получить координаты X & Y кнопки в Android? - PullRequest
8 голосов
/ 26 августа 2011

Я работал над Android некоторое время и хотел бы узнать, возможно ли восстановить положение кнопки в Android.

Моя цель - получить координаты X & Y и распечатать их на LOGCAT.

Несколько примеров, чтобы показать мне, как оценили бы.

Спасибо

Ответы [ 3 ]

14 голосов
/ 26 августа 2011

Конечно, вы можете получить их, убедитесь, что виды нарисованы как минимум один раз, прежде чем пытаться получить позиции.Вы можете попытаться получить позиции в onResume () и попробовать эти функции

view.getLocationInWindow()
or
view.getLocationOnScreen()

или, если вам нужно что-то относительно родителя, используйте

view.getLeft(), view.getTop()

Ссылки на определения API:

6 голосов
/ 01 июня 2015

Как Азлам сказал, что вы можете использовать View.getLocationInWindow () , чтобы получить координаты x, y .

Вот пример:

Button button = (Button) findViewById(R.id.yourButtonId);
Point point = getPointOfView(button);
Log.d(TAG, "view point x,y (" + point.x + ", " + point.y + ")");

private Point getPointOfView(View view) {
    int[] location = new int[2];
    view.getLocationInWindow(location);
    return new Point(location[0], location[1]);
}

Бонус - Чтобы получить центральную точку данного вида:

Point centerPoint = getCenterPointOfView(button);
Log.d(TAG, "view center point x,y (" + centerPoint.x + ", " + centerPoint.y + ")");

private Point getCenterPointOfView(View view) {
    int[] location = new int[2];
    view.getLocationInWindow(location);
    int x = location[0] + view.getWidth() / 2;
    int y = location[1] + view.getHeight() / 2;
    return new Point(x, y);
}

Я надеюсь, что пример все еще может быть полезен для кого-то.

2 голосов
/ 31 июля 2015
buttonObj.getX();
buttonObj.getY();
...