Я хочу создать читатель текста, который будет вырезать текст и поместить его в TextView (представляет мои страницы) и один за другим.Они содержатся в ViewFlipper (представляет весь мой текст), который позволяет мне переворачивать страницы.
К минусам, я не могу разумно обрезать свой текст.Пока я ограничиваю каждое TextView количеством символов, но оно очень нестабильно.Действительно, некоторые буквы занимают больше места, чем другие. Мы не можем использовать этот метод.
Как мы можем узнать, какое количество текста будет входить в TextView?
Я пытался найти максимальный размер моего просмотра вручную.Я вызвал в:
float test = view.getPaint().measureText(myString);
Это работает хорошо.Когда я ставлю 480 букв (0 и 1), я получаю 14 400, и мой текст полностью находится на экране.С помощью:
1 -> 12.0
0 -> 12.0
é -> 11.0
\n -> 13.0
\r -> 7.0
всего для заполнения страницы -> 14400
Проблема в том, что разрывы строк и возврат каретки вызывают проблемы.
Если в моей строке есть только буквы или цифры, это хорошо: если мы соблюдаем максимальный размер 14 400, все отображается на экране.Нет проблем!
К минусам, если разрыв строки или возврат каретки не работает.Даже если мы соблюдаем ограничение 14400, текст выше и отображается не полностью.
Это потому, что метод "MeasureText"; "возвращает только 13 для разрыва строки. Но это странно, разрыв строкидолжно быть не менее 480, чтобы сделать его непротиворечивым.
Как издатели eBook (Moon Reader, + Aldiko) так хорошо форматируют текст? Каждая страница имеет одинаковую высоту, текст заканчиваетсяв том же месте ..