在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中加载它们时,会显示小点,当我放大文本时会散乱。
所以我有两个问题
- 如何呈现一个大的文件像150 MB的文件中的WebView
- 如何加载充实图形内容。
我已经使用每个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);
}