TXT 阅读器如何“快速准确”跳转到标记文本所在的页面

2017-11-25 17:44:14 +08:00
 judging47

最简单的方法是从被标记的地方开始加载文本,这样跳转后的页面是以标记的文本开头。但实际上如果从章节首部开始进行分页(往后面逐个翻页),标记文本的位置未必在页面的首部(如中间或者尾部)。

为了阅读的体验,阅读器应该找到包含标记文本页面的首个文字开始加载内容(而不是从标记文本位置开始),难点在于怎么找到这个位置?如果能够快速对章节进行分页,相信应该能够做到这点。不过找到的几种方法不是很靠谱:

  1. 按照每页固定字数分页(不适用于非等宽字体和换行)
  2. 按照每个分页包含的行数快速定位(不适用于非等宽字体、耗时大)
  3. 从章节开始位置逐个进行分页(耗时大,不适用章节较大情形)

请问有好的方法能实现上面的功能吗?

PS:
目前发现掌阅的“想法”和“书签”能够做到这样(在更换字体和修改字体大小的情况下同样如此),QQ 阅读和 FBReader 都不支持。

5050 次点击
所在节点    Android
2 条回复
winglight2016
2017-11-26 09:36:19 +08:00
我也碰到过类似的问题,只是没有进一步去实现,所以只提供两个思路:
1.使用 html 锚定
2.计算页数的时候,只渲染一页出来,然后统计当前字数,再来计算页数,这样即使不完全准确,误差也是可以接受的,毕竟还有每章开头结尾的自动分页,所以把这个差距也考虑就差不多了
judging47
2017-11-27 12:10:39 +08:00
感谢!!!
第一种方法我还没想到,这个思路很好,我得研究一下;
第二种方法应该能做到大概,对于非等宽字体可能误差比较大,不过比直接加载标记文本要好;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/409495

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX