2014-12-29 2 views
1

Я использую epublib в android для загрузки epub-файла в webview. Это мой код, чтобы загрузить файлЗагрузка epub-файла в webView Android

public void getEntireBook(){ 
    Spine spine = book.getSpine(); 
    List<SpineReference> spineList = spine.getSpineReferences() ; 
    int count = spineList.size(); 
    TextView tv=new TextView(getApplicationContext()); 
    tv.setText(Integer.toString(count)); 
    StringBuilder string = new StringBuilder(); 

    for (int i = 0; count > i; i++) { 
     Resource res = spine.getResource(i); 
     string.append(res.getTitle()); 

     RowData row = new RowData(); 
     row.setTitle(string.toString()); 
     row.setResource(spine.getResource(i)); 
     contentDetails.add(row); 

     try { 
      InputStream is = res.getInputStream(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
      try { 
       while ((line =(String) reader.readLine()) != null) { 


       } 

      } catch (IOException e) {e.printStackTrace();} 

      //do something with stream 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     webView.loadData(line, "text/html;charset=UTF-8",null); 
    } 
} 

Некоторые файлы загружаются нормально файлы с 20 МБ до 70 МБ загружаются нормально, но файлы выше 90 мб дают проблему либо пустой WebView отображается или экран черным.

Другая проблема заключается в том, что некоторые файлы имеют большой текст и имеют богатое графическое содержимое, такое как картинки, декоративные шрифты. Когда я загружаю их в веб-просмотр, отображаются мелкие точки, и когда я увеличиваю масштаб текста, разбрасываюсь.

Поэтому у меня есть два вопроса

  1. Как делают большой файл как 150 Мб файл в WebView
  2. Как загрузить Пополните графический контент.

и я использовал каждую настройку веб-просмотра, например, setrenderpriority high и т. Д., Вводя js в webview, но мне не удалось найти решение.

ответ

1

вы должны отображать главу по разделам (разбиение на страницы). не отображать все главы за раз, что может сделать логгинг на андроиде.

public void pagination (int page){ 
 
     Resource res = spine.getResource(page); 
 
     string.append(res.getTitle()); 
 

 
     RowData row = new RowData(); 
 
     row.setTitle(string.toString()); 
 
     row.setResource(res); 
 
     contentDetails.add(row); 
 

 
     try { 
 
      InputStream is = res.getInputStream(); 
 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
 
      try { 
 
       while ((line =(String) reader.readLine()) != null) { 
 

 

 
       } 
 

 
      } catch (IOException e) {e.printStackTrace();} 
 

 
      //do something with stream 
 
     } catch (IOException e) { 
 
      e.printStackTrace(); 
 
     } 
 
     webView.loadData(line, "text/html;charset=UTF-8",null);      
 
    }

 Смежные вопросы

  • Нет связанных вопросов^_^