我想在我的應用程序中使用epub書。 我發現這個鏈接http://www.siegmann.nl/epublib/android打開我的epub書。android epublib訪問css,圖像,url內部文件
我知道如何顯示來自EPUB書的文本,
,但我有一個圖片,CSS文件和鏈接的一個問題。他們的網址是資產文件夾,例如:
文件:///android_asset/index_split_000.html#back_note_1 文件:///android_asset/images/image-1.jpeg
而在資產文件夾沒有像這樣的HTML頁面,沒有圖像文件夾,只有epub壓縮文件。
如何使用所有內部文件?
我的代碼:
WebView webView=(WebView) findViewById(webView);
List<Chapter> chapters=new ArrayList<Chapter>();
AssetManager assetManager = getAssets();
try{
//find input Stream for book
InputStream epubInputStream = assetManager.open("xxxxx.epub");
//Load book from input stream
book = (new EpubReader()).readEpub(epubInputStream);
//Log the book's cover image property
Bitmap coverImage = BitmapFactory.decodeStream(book.getCoverImage().getInputStream());
//Log.i("epublib", "CoverImage is" + coverImage.getWidth()+" by "+coverImage.getHeight()+" pixels");
//Log the tables of contents
logTableOfContents(book.getTableOfContents().getTocReferences(),0);
}
catch(IOException e){
Log.e("epublib", e.getMessage());
}
private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
if (tocReferences == null) {
return;
}
for (TOCReference tocReference : tocReferences) {
StringBuilder tocString = new StringBuilder();
try {
Chapter chapter=new Chapter();
String s=new String(tocReference.getResource().getData());
chapter.setTitle(tocReference.getTitle());
chapter.setContent(s);
chapters.add(chapter);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
logTableOfContents(tocReference.getChildren(), depth + 1);
}
}
章是我自己的類:
public class Chapter {
String title;
String content;
public Chapter(String titlt,String content) {
this.title=titlt;
this.content=content;
}
public Chapter() {
}
public String getTitle() {
return title;
}
public String getContent() {
return content;
}
public void setTitle(String title) {
this.title = title;
}
public void setContent(String content) {
this.content = content;
}
}
將數據加載到網頁視圖:
webView.loadDataWithBaseURL("file:///android_asset/",chapters.get(index).getContent(), "text/html", "utf-8", null);
不能多謝你。先生,你是救命的人。 –