Разбивка на страницы в Android TextView

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

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

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

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


person WeNeigh    schedule 03.06.2011    source источник
comment
Этот вопрос может помочь.   -  person Onik    schedule 24.08.2015


Ответы (1)


Вы должны создать собственное расширение TextView и подключиться к функции onMeasure, которая должна дать вам ширину и высоту (возможно, вы хотите указать 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
person stealthcopter    schedule 20.12.2011