android中电子书阅读器分页问题

android中电子书阅读器分页问题,android,pagination,epub,navigationbar,Android,Pagination,Epub,Navigationbar,我正在为android创建一个电子书阅读器。当内容被拆分到页面时,我遇到了问题 下面是我的应用程序的3个屏幕截图 正如您所见,内容与屏幕并不完全匹配。例如,最后一句应该在第一张图像上完成,而不必跳到下一页。另外,第三张图片的图像应该位于第二张图片的后半部分,因为有足够的空间在某些页面中,内容也位于导航栏下方。 逻辑是:我获取整个内容,当找到一个空格时,获取上一个单词,然后检查文本高度是否大于屏幕高度。如果没有,请再次检查下一个空格,并将下一个单词附加到以前收集的字符串中。同样,我得到了页面内

我正在为android创建一个电子书阅读器。当内容被拆分到页面时,我遇到了问题

下面是我的应用程序的3个屏幕截图

正如您所见,内容与屏幕并不完全匹配。例如,最后一句应该在第一张图像上完成,而不必跳到下一页。另外,第三张图片的图像应该位于第二张图片的后半部分,因为有足够的空间在某些页面中,内容也位于导航栏下方。

逻辑是:我获取整个内容,当找到一个空格时,获取上一个单词,然后检查文本高度是否大于屏幕高度。如果没有,请再次检查下一个空格,并将下一个单词附加到以前收集的字符串中。同样,我得到了页面内容

获取文本高度的代码如下所示

    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进行实现


    谢谢。

    您是如何将内容拆分成页面的?一种选择可能是让webview通过对内容应用列宽css规则来完成工作,将列宽设置为webview的宽度。Re:导航栏,可能有更好的方法,但是你可以把webview的高度缩小一点,这样它就在导航栏的上方。我必须使用TextView和ImageView。我不能使用web视图来完成这个项目。@chathura,你找到解决方案了吗?如果可能的话,你能和我分享一下代码吗?谢谢