android - 将 html 内容呈现为动态 "pages"

标签 android webview textview

我正在为安卓开发一个电子书阅读器。电子书的内容通常分为 html 文件 (epub),其中包含一个或多个章节。

我打算构建一个电子书阅读器,将这些文件的内容分成不同的“页面”。问题是要知道有多少文本“适合”一页并计算正确的页数,因为这取决于许多不同的因素,例如:字体大小、字号、段落、图像、分页符, 头条等

理想情况下,我会让我的文本合理且可选择,因为这对于普通的 TextView 或 EditText 是不可能的,我必须使用不可滚动的 WebView。

总而言之,我如何“衡量”我的 WebView 上的一个“页面”上适合多少文本? 或者是否有其他更好的方法来解决这个问题?我看到 Paint 类支持测量文本和 breakText。

谢谢!

最佳答案

注意:此答案不使用 webview 作为您的显示界面。

您可以使用 Canvas绘制每一页。 Canvas 为您提供了它的高度和宽度,您可以使用它在 Canvas 上绘制每条线 drawText基于可用的宽度和高度。

基本上,您可以计算一行可以容纳多少个字母,取那么多单词,注意不要拆分任何单词并继续绘制文本。

如果您将任务分解为每个段落使用不同的工作人员,您也可以加快速度。

关于android - 将 html 内容呈现为动态 "pages",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9131303/

相关文章:

android - 如何在 recyclerview 中使用不同的布局?

android - xml 布局中的自定义 View

android - 更改android中每行的颜色

android - 如何在多次单击 Button 时多次更改 TextView?

android - 不同手机的Textview大小不同

android - 如何在 ImageView 上获取图像的 ID?

java - Android 中的警报框不起作用

javascript - Android webview javascript 有时只加载

android - 需要 Android webview window.open() 和 window.close() 的信息

java - WebView - 如果不请求两次就无法下载文件?