我发现了一个使用epublib在android中阅读epub书籍的解决方案。我能读懂这本书的字幕。但我没有找到一种方法来逐行阅读内容。我怎样才能做到这一点?
获取书名的示例代码是
private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
if (tocReferences == null) {
return;
}
for (TOCReference tocReference : tocReferences) {
StringBuilder tocString = new StringBuilder();
StringBuilder tocHref=new StringBuilder();
for (int i = 0; i < depth; i++) {
tocString.append("t");
tocHref.append("t");
}
tocString.append(tocReference.getTitle());
tocHref.append(tocReference.getCompleteHref());
Log.e("Sub Titles", tocString.toString());
Log.e("Complete href",tocHref.toString());
//logTableOfContents(tocReference.getChildren(), depth + 1);
}
}
此代码来自http://www.siegmann.nl/epublib/android
我怎样才能得到这本书的故事。。。
我不确定这是在epub文件中导航的方式。据我所知(到目前为止,我还在学习),获取所有书籍内容的更好方法是基于书脊部分。但是,我仍然不知道如何将这两件事(TOC和真正的脊椎)与epublib接口连接起来。根据文件:"书脊部分是按阅读顺序排列的书籍部分。这与目录部分形成了鲜明对比,目录部分是书籍各部分的索引。"
如果你喜欢的话,这是一个片段:
Spine spine = new Spine(book.getTableOfContents());
for (SpineReference bookSection : spine.getSpineReferences()) {
Resource res = bookSection.getResource();
try {
InputStream is = res.getInputStream();
//do something with stream
} catch (IOException e) {
好吧,我对导航不太确定,但也想知道如何导航现在-我有这样的东西(它是逐行阅读):
private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
if (tocReferences == null) {
return;
}
for (TOCReference tocReference : tocReferences) {
StringBuilder tocString = new StringBuilder();
for (int i = 0; i < depth; i++) {
tocString.append("t");
}
try{
InputStream is = tocReference.getResource().getInputStream();
BufferedReader r = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = r.readLine()) != null) {
String line = Html.fromHtml(line).toString();
}
}
catch(IOException e){
}
//logTableOfContents(tocReference.getChildren(), depth + 1);
}
}