Получить текст из TextView отображаемый на экране
Допустим 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);
}
});
`
Ответы (1 шт):
Автор решения: Sergei Buvaka
→ Ссылка
Вы можете получить начало и конец видимого текста в TextView и потом исходя из этих значений обрезать вашу строку. Код ниже показывает как это сделать:
int start = textView.getLayout().getLineStart(0);
int end = textView.getLayout().getLineEnd(textView.getLineCount() - 1);
String displayed = textView.getText().toString().substring(start, end);