我正在开发一个读取电子书(epub 格式)的 Android 应用程序,目前我正在使用 Paul Siegeman 的 epublib 库,它确实是一个非常好的 epub 阅读器,但它有一些限制,例如,我需要的那个,你不能水平移动页面(就像你阅读一本真正的书一样),所以我需要自己实现它,但我被卡住了。
实际读取 epub 然后将其放入 webview 的方法是下一个:
private void openEpub(String bookFilename){
WebView webView = (WebView) findViewById(R.id.webView);
nl.siegmann.epublib.domain.Book book=null;
try {
book = (new EpubReader()).readEpub(new FileInputStream(Environment.getExternalStorageDirectory().getPath() + "/" + bookFilename));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String baseUrl = Environment.getExternalStorageDirectory().getPath() + "/";
String data=null;
try {
data = new String(book.getContents().get(1).getData());
} catch (IOException e) {
e.printStackTrace();
}
webView.loadDataWithBaseURL(baseUrl, data, "text/html", "UTF-8", null);
}
如您所见,我在 webview 中显示电子书,据我所知,webview 提供的唯一滚动可能性是向上/向下。
我正在考虑将getData()返回的html字符串和webview加载到页面中并用viewpager一一显示,但是如何根据屏幕大小正确拆分html?
你认为我的这个想法是正确的吗?从左到右/从右到左(分页)或任何其他“免费或便宜”库显示 epub 的任何其他解决方案?(我试过PageTurner,真的很好,但是商业版对我来说太贵了)