将html内容呈现为动态"页面"

Ric*_*ard 11 android textview webview

我正在为Android构建一个电子书阅读器.电子书的内容通常分为html文件(epub),其中包含一个或多个章节.

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

理想我会让我的文本合理和可选择,因为普通的TextView或EditText是不可能的,我必须使用不可滚动的WebView.

总而言之,我如何"测量"适合我的WebView上一个"页面"的文本数量?或者有更好的方法来解决这个问题吗?我看到Paint类支持measure文本和breakText.

谢谢!

Rav*_*yas 7

注意:此答案不使用webview作为显示表面.

您可以使用Canvas绘制每个页面.画布为您提供高度和宽度,您可以使用drawText根据可用的宽度和高度在画布上绘制每一行.

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

如果你分解了每个段落使用不同工人的任务,你也可以快速完成.

  • 你也可以解决这个问题.如果您可以保留屏幕上哪个字符的位置...您可以按照他们的选择对话框[现在也可以是矩形]并翻转这些坐标之间的文本颜色以显示它们已被选中.它更多的是一个工作,但它应该工作:). (2认同)