Как найти все координаты X и Y текста? - PullRequest
0 голосов
/ 10 сентября 2018

Я занимаюсь разработкой приложения для обучения детей алфавиту. Мне нужно получить координаты X и Y всей текстовой области из текстового обзора, чтобы они могли рисовать только над текстом. Например: у меня есть буква A в моем текстовом представлении, мне нужно разрешить пользователю рисовать букву только над текстом A, и мне нужно заблокировать рисунок за пределами текста.

Моя единственная проблема в том, что я не знаю, как найти текстовую область для алфавитов, так как я увеличил размер шрифта для текста, чтобы он отображался больше и выровнял его по центру на экране.

Любые предложения будут действительно полезны.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Попробуйте следующий код:

ViewTreeObserver vto = textView.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener (new OnGlobalLayoutListener() { 
@Override 
public void onGlobalLayout() {
    textView.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
     // Initialize a new integer array two hold the TextView x y position
            int[] location = new int[2];

            textView.getLocationOnScreen(location);

} 

});

0 голосов
/ 10 сентября 2018

как то так (https://www.youtube.com/watch?v=15B3L78jWfI)?

Чтобы запретить пользователю рисовать за пределами заданной области, переопределив (12:22) onTouchEvent (), вы можете просто поместить предложение, проверяющее, находятся ли заданные координаты внутри или нет.

Чтобы проверить, находятся ли они внутри, вы можете написать такую ​​простую функцию:

int MIN_X;
int MAX_X;
int MIN_Y;
int MAX_Y;

boolean isInside(int xCord, int yCord){

    if(xCord>=MIN_X && xCord<=MAX_X && yCord>=MIN_Y && yCord<=MAX_Y)
        return true;

    return false;
}

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

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