Хорошо, вот снимок - и довольно неуклюжий, но вкратце:
* Вам нужно знать, будет ли какая-либо строка текста соответствовать ширине вашего взгляда * Вам нужно знать, каксколько строк у вас есть * Вам нужно обработать встроенные символы новой строки
, поэтому
поместится ли какой-либо текст в любую строку
private boolean isTooLarge (TextView text, String newText) {
float textWidth = text.getPaint().measureText(newText);
return (textWidth >= text.getMeasuredWidth ());
}
сколько строк имеет ваше текстовое представление:
numLinesPerPage=mTextView.getHeight()/mTextView.getLineHeight(); //not this doesn't handle special cases where you've changed the font, bolded it etc
С помощью этих двух инструментов вы можете перебирать текст, добавляя слова, отслеживая количество оставшихся строк для работы (и обрабатывать символы новой строки, если они есть в вашем тексте)
note: getHeight не может быть вызван в конструкторе, поскольку он еще не знает высоту - вы также можете сделать это в onDraw или, возможно, в onMeasure, если у вас есть пользовательский элемент управления.