Нумерация страниц в Android TextView - PullRequest
6 голосов
/ 03 июня 2011

У меня есть текст в файле [~ 100 KB], который должен отображаться пользователю в виде TextView.Я хочу разбить текст на страницы.

Это идея, которую я имею в виду, чтобы реализовать разбиение на страницы:

  • Определить ширину и высоту экрана, скажем 320 x 480.
  • Рассчитать 75% высоты, [360 px] для размещения кнопок и т. Д.
  • Определить размер шрифта
  • Рассчитать количество символов [N], которые могут отображаться.
  • Чтение из файла и отображение только N количества символов.

Кажется, что это будет работать, но кажется грубым и подверженным ошибкам.У кого-нибудь есть идеи получше?

1 Ответ

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

Вы должны создать свое собственное расширение TextView и подключиться к функции onMeasure, которая должна дать вам ширину и высоту (возможно, вы захотите дать textview layout_weight = 1)

Затем вы можете использовать рисование дляполучите размер, который займет текст, но я не проверял это, и вам, вероятно, нужно будет что-то сделать, чтобы учесть разбиение строк.Но это хорошее начало ...

Paint paint = new Paint();
Rect bounds = new Rect();

int text_height = 0;
int text_width = 0;

paint.setTypeface(Typeface.DEFAULT);
paint.setTextSize(12);// have this the same as your text size

String text = "Some random text";

paint.getTextBounds(text, 0, text.length(), bounds);

text_check_h =  bounds.height(); // Will give you height textview will occupy
text_check_w =  bounds.width();  // Will give you width textview will occupy
...