我正在开发一个读取电子书(以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);
}
Run Code Online (Sandbox Code Playgroud)
所以当你看到我在webview中显示电子书时,据我所知,webview给出的唯一滚动可能性是上/下.
我正在考虑拆分getData()返回的html字符串,并将webview加载到页面中并使用viewpager逐个显示它们,但是如何根据屏幕大小正确分割html?
你觉得这个想法我是正确的吗?任何其他解决方案显示从左到右/从右到左(分页)或任何其他"免费或廉价"库的epub?(我试过PageTurner,它真的很棒,但商业版对我来说太贵了)