2011-09-28 123 views
1

現在我正在研究電子書閱讀器..我從這個http://www.siegmann.nl/epublib/android得到了一個epub庫,但它需要很長時間才能逐行讀取內容,並且在我的項目中有一個突出顯示內容的選項..如何使有可能..預先感謝..如何在android中讀取epub文件?

+0

你的問題到底是什麼? –

+0

我想在textview.is中顯示epub教科書可能嗎?是的如何?合適的答案讚賞... – daffodils

+0

@daffodils我也從該網站下降,但它不起作用,你能幫助我,你有什麼改變嗎? – PankajAndroid

回答

1

所以我不知道我是怎麼想出這個答案,但無論如何。

對於您當前的問題,可以查看脊椎指數(脊椎區別於目錄的內容)或內容列表(如果信息位於元數據中)。

現在你怎麼脊柱指數做到這一點:

Spine spine = new Spine(book.getTableOfContents()); 
List<SpineReference> spineList = spine.getSpineReferences(); //List of spine information 
Resource res = spine.getResource(1);//1 is an example to proper utilize this you have to store the information on which part you are in and how much you rendered. I suggest keeping a static integer on what your location is and after this part is done you can go to the next one and so on. 
InputStream is = res.getInputStream();//getting the inputstream 
StringBuilder string = new StringBuilder();//Create a builder as we will add more information to the string 
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
string html,line = null; 
while ((line = reader.readLine()) != null) {//start reading the information line by line 
html = string.append(line + "\n").toString();//get information for line by line basis 
} 

現在,您將需要從文本解析出的HTML信息以獲得正確的信息

現在對於它要目錄除了1行改變外,其餘部分與頂部相同

ArrayList<TOCReference> book_list = new ArrayList<TOCReference>(amBook().getTableOfContents().getTocReferences()); 

同樣的方式來閱讀它。 BufferReader - > Inputstream

+0

-1,我想他是通過閱讀html而不是閱讀epub文件。 –

+0

嗯....你的權利我會改變我的答案。 – wesdfgfgd

+0

完成我做了更改。 – wesdfgfgd