在web视图Android的

问题描述:

我一直在使用epublib在android系统加载的网页视图ePub文件加载ePub文件。这是我的代码加载在web视图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 MB到70 MB的文件被加载得很好,但上方90 MB的文件是给问题,或者一个空白网页视图显示或屏幕上的文件变黑。

一些的另一个问题是,一些文件有很大的文本,并且有类似图片,装饰字体和图形丰富的内容。当我在webview中加载它们时,会显示小点,当我放大文本时会散乱。

所以我有两个问题

  1. 如何呈现一个大的文件像150 MB的文件中的WebView
  2. 如何加载充实图形内容。

我已经使用每个webview设置像setrenderpriority高等,注入js到webview,但我无法找到解决方案。

你应该呈现逐章(分页)一章。不要一次渲染所有章节,这可能会导致Android出现延迟。

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);      
 
    }