Как отобразить все страницы и все главы, используя nl.siegmann.epublib

Это то, что я пытался выполнить, если кто-то может помочь, это было бы очень признательно. Таким образом, в этом коде будет отображаться только титульная страница. Я прочитал http://www.siegmann.nl/static/epublib/apidocs/, что вы можете использовать getSpine() чтобы получить все, но он отображал только одну вещь в моем случае, которая является титульной страницей.

 webView = (WebView)findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); AssetManager am = getAssets(); try { InputStream epubInputStream = am.open(bookName); book = (new EpubReader()).readEpub(epubInputStream); } catch (IOException e) { Log.e("epublib", e.getMessage()); } Spine spine = book.getSpine(); for (SpineReference bookSection : spine.getSpineReferences()) { Resource res = bookSection.getResource(); try { InputStream is = res.getInputStream(); StringBuffer string = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); try { while ((line = reader.readLine()) != null) { linez = string.append(line + "\n").toString(); } } catch (IOException e) {e.printStackTrace();} //do something with stream } catch (IOException e) { e.printStackTrace(); } } webView.loadData(linez, "text/html", "utf-8"); 

Так что я понял, используя позвоночник на http://www.siegmann.nl/static/epublib/apidocs/, так это то, что он по-прежнему работает по разделам. Поэтому я попытался выяснить, сколько секций есть, указав числа подсчета. Затем поместили эти числа в Resource res = spine.getResource(i); , Если вы будете использовать Resource res = spine.getResource(2); Он отображает позвоночник 2, который должен быть главой 2, если кто-то не испортит формат epub.

 Spine spine = book.getSpine(); List<SpineReference> spineList = spine.getSpineReferences() ; int count = spineList.size(); tv.setText(Integer.toString(count)); StringBuilder string = new StringBuilder(); for (int i = 0; count > i; i++) { Resource res = spine.getResource(i); try { InputStream is = res.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); try { while ((line = reader.readLine()) != null) { linez = string.append(line + "\n").toString(); } } catch (IOException e) {e.printStackTrace();} //do something with stream } catch (IOException e) { e.printStackTrace(); } } webView.loadData(linez, "text/html", "utf-8"); 
Intereting Posts
Загрузите много больших растровых изображений в виде эскизов – Android Android KeyPairGenerator всегда генерирует одну и ту же пару ключей OnActivityResult всегда возвращает 0 (RESULT_CANCELED) при вызове настроек Могу ли я продать свое приложение SL4A на Android Market Переменное количество столбцов в GridLayoutManager Как интегрировать кнопку плавающего действия в линейную компоновку с панелью инструментов Как получить телефонное название мелодии звонка в программном обеспечении Android, вместо того, чтобы получать идентификатор мелодии звонка ViewPager java.lang.OutOfMemoryError: размер растрового изображения превышает бюджет VM Android: как включить / отключить Wi-Fi или подключение к Интернету программно Элемент с фиксированной высотой Android ListView Привлечение Google Play к навигации в приложении Android Можно ли изменить контекст приложения во время жизненного цикла приложения? Параметры отправки POST для Android Volley всегда равны нулю Sugar ORM listAll () не показывает никаких данных Переходы дизайна материалов Android