我正在为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实现。
感谢。