Получить координаты кнопки переключения виджета переключателя - PullRequest
0 голосов
/ 13 января 2019

Я использую это, чтобы получить координаты x & y переключателя:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    int[] location = new int[2];
    mySwitch.getLocationOnScreen(location);
    int x = location[0];
    int y = location[1];
}

Это дает х и у всего переключателя. Как получить координаты переключателя с правой стороны?

enter image description here

Весь переключатель - желтый прямоугольник, но я пытаюсь получить x, y кнопки переключения, обведенной красным.

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вот как я это сделал:

int [] location = new int [2];
Switch sw = findViewById(R.id.mySwitch);
sw.getLocationOnScreen(location);
int buttonX = location[0] + sw.getWidth() - sw.getPaddingRight() - (getResources().getDimensionPixelSize(R.dimen.switch_width))/2;
int buttonY = location[1] + (sw.getHeight()/2);

По умолчанию ширина кнопки переключения примерно равна 50dp . getResources().getDimensionPixelSize(R.dimen.switch_width) было использовано для получения ширины в пикселях в зависимости от разрешения экрана.

Внутри res> значения> измерения. Xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="switch_width">50dp</dimen>
</resources>
0 голосов
/ 13 января 2019

Используйте дополнение.

Просто получите ширину и высоту вида, добавьте ширину к x и добавьте высоту к y.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...