Ebook читатель вопрос о нумерации страниц в Android
Я создаю книгу для чтения для Android. У меня возникают проблемы, когда содержимое разбито на страницы.
Вот 3 скриншота моего приложения.
Как видите, контент не совсем подходит к экрану. Например, последнее предложение должно быть закончено на первом изображении, не переходя на следующую страницу. Кроме того, изображение третьего рисунка должно было появиться во второй части второго изображения, так как места достаточно. На некоторых страницах контент также находится под панелью навигации.
Логика такова: я получаю весь контент, а при обнаружении пробела получаю предыдущее слово и проверяю, больше ли высота текста, чем высота экрана. Если нет, проверьте следующий пробел и добавьте следующее слово к ранее собранной строке. Точно так же я получаю содержимое страницы.
Код для получения textHeight выглядит следующим образом:
public int getTextHeight(final String text) {
TextView textView = new TextView(getContext());
textView.setText(text);
textView.setTextSize(TEXT_SIZE);
TextPaint textPaint = textView.getPaint();
return new StaticLayout(text.toString(), textPaint, getScreenWidth(),Alignment.ALIGN_NORMAL, 1.0f, 0.0f, true).getHeight();
}
Код высоты экрана,
public int getScreenHeight() {
WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(dm);
return dm.heightPixels;
}
** Так как внизу есть панель навигации, я уменьшил высоту экрана на 50 пикселей. Но все же контент идет под панелью навигации.
Так что мои вопросы
- Как скрыть панель навигации или если ее невозможно скрыть, то как узнать ее точную высоту
- Какова причина того, что контент не помещается на экране, я действительно не могу найти причину для этого. (Я проверил электронную книгу, в которой есть только текст, в нижней части есть пробел, но не под строкой)
** Я поставил высоту 300 пикселей для изображений. Использовал ViewPager для реализации.
Благодарю.