Я разрабатываю приложение для Android, которое читает электронные книги (в формате epub), и на данный момент я использую epublib-библиотеку Пола Сигемана, которая действительно очень хороший читатель, но у него есть некоторые ограничения, например, и тот, который я нужно, вы не можете перемещаться по страницам горизонтально (так как вы читаете настоящую книгу), поэтому мне нужна моя реализация, но я застрял.
Метод, который на самом деле читает 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 дает вверх/вниз.
Я думал о разделении строки html, возвращаемой getData(), и веб-просмотр загружается на страницы и отображает их один за другим с помощью viewpager, но как правильно разбить html в соответствии с размером экрана?
С вашей идеей вы думаете, что я на правильном пути? Любые другие решения для отображения epub слева направо/справа налево (paginate) или любая другая "бесплатная или дешевая" библиотека для этого? (Я попробовал PageTurner, это действительно хорошо, но коммерческая версия слишком дорога для меня)