【问题标题】:How to use WebView to display html pages in ebook reader fashion?如何使用 WebView 以电子书阅读器的方式显示 html 页面?
【发布时间】:2012-12-25 11:47:48
【问题描述】:

我的 android 设备上有一组 html 文件。我需要以一种特殊的方式在我的应用程序中显示它们:我想将长页面分成几个较小的部分,以便它们适合设备高度。我不确定是否可以通过内置设施实现这一目标。这个问题我该怎么办?

【问题讨论】:

  • 当页面太大而无法适应屏幕时,我希望有可能将内容移动到下一页。我不想滚动。

标签: android webview android-webview


【解决方案1】:

您可能不应该在这里使用 web 视图。

尝试以下方法:

您可以使用Canvas 来绘制每一页。画布会给你它的高度和宽度。使用它,您可以使用Drawtext 根据可用的宽度和高度在画布上绘制每一行。

因此,您基本上是在计算一行中可以容纳多少个字母,占用那么多单词,注意不要拆分任何单词并继续绘制文本。您也可以使用不同的工作线程来处理不同的段落,以加快渲染速度。

希望这会有所帮助!!!!

【讨论】:

    【解决方案2】:
     String summary = "<html><body>You scored <b>192</b> points.</body></html>";
     webview.loadData(summary, "text/html", null);
    

    String yourhtmlpage = "<html><body>You scored <b>hello world</b> points.</body></html>";
     webview.loadDataWithBaseURL(null, yourhtmlpage, "text/html", "UTF-8", null);
    

    【讨论】:

    • 那么OP的问题中的分页呢?
    • 哦,我想我误解了你的回答。我认为您的意思是“为每个页面加载不同的 HTML”。您能否对此答案进行简单的编辑,以便我可以撤消我的反对意见?
    【解决方案3】:

    没有构建自己的 HTML 解析阅读器,除了使用 CSS 和 JavaScript 将内容拆分为页面之外,我想不出任何其他方法。

    您可以使用的库示例是Monocle。我自己没用过,但是主页说可以用它来渲染……

    ...XHTML 文件具有定义的线性进程,以及可选的部分或章节的嵌套层次结构 - 这是受支持的。全彩。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 2011-10-02
      • 2014-05-13
      • 2017-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多