TransWikia.com

Получить текст из TextView отображаемый на экране

Stack Overflow на русском Asked by STRATEG 766 on November 27, 2021

Допустим TextView содержит текст из 2тыс. символов, а на экране отображаются только 500 символов из-за большого размера шрифта, и если я вызываю getText().length, то получаю 2тыс. Как можно получить тот текст, который отображается на экране?


В displayed у меня хранится весь текст. А мне надо, чтобы в нем хранился текст только видимый на экране, а не весь текст что есть в textView

textView.post(new Runnable() {
    @Override
    public void run() {
        int start = textView.getLayout().getLineStart(0);
        int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
       

        String displayed = textView.getText().toString().substring(start, end);
        Log.d("staend",displayed);
    }
}); 

`

One Answer

Вы можете получить начало и конец видимого текста в TextView и потом исходя из этих значений обрезать вашу строку. Код ниже показывает как это сделать:

int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);

String displayed = textView.getText().toString().substring(start, end);

Answered by Sergei Buvaka on November 27, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP