В Android SDK - Как я могу найти слово в пиксельной позиции, нажатой пользователем в EditText - PullRequest
1 голос
/ 26 декабря 2011

Я создаю приложение, в котором пользователь вводит текст в EditText.

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

Спасибо, Виктор

Ответы [ 3 ]

2 голосов
/ 26 декабря 2011

Попробуйте этот код ...

public boolean onTouch (Просмотр представления, MotionEvent mEvent) {

     Layout layout = ((TextView) view).getLayout();
        int x = (int)mEvent.getX();
        int y = (int)nEvent.getY();
        if (layout!=null){
            int line = layout.getLineForVertical(y);
            int charAtTouch = layout.getOffsetForHorizontal(line, x);
            Log.i("position", "" + charAtTouch);
            }
        return true;


}
1 голос
/ 26 декабря 2011

Возможно, вы захотите взглянуть на пролеты.В частности, ClickableSpan .Вы можете назначить интервал для части текста, чтобы придать этой части текста некоторые «особенности» (в этом случае текст станет активным).

Есть хороший пример , в котором пользовательские интервалы, расширяющие ClickableSpan, используются в EditText, чтобы сделать отображение текста более удобным для пользователя.

1 голос
/ 26 декабря 2011

Может быть, вы можете получить положение курсора, появившегося в текстовом поле после касания, и найти слово?

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