gpt4 book ai didi

android - 需要很长时间才能在设备中显示 epub 文件

转载 作者:行者123 更新时间:2023-11-29 16:14:51 25 4
gpt4 key购买 nike

我们正在通过我们的应用程序在屏幕上显示一个 epub 文件。该文件保存在 SDCard 中,我们使用以下逻辑从 SDCard 获取文件数据并显示在屏幕中。但是在屏幕上加载内容需要很长时间。我的代码有什么问题吗?请帮助我的 friend 。

 File rootDir = Environment.getExternalStorageDirectory();
EpubReader epubReader = new EpubReader();
try {
book = epubReader.readEpub(new FileInputStream("/sdcard/forbook.epub"));
Toast.makeText(getApplicationContext(), "Book : " + book, Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
Toast.makeText(getApplicationContext(), "File Not Found" + book, Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "IO Found" + book, Toast.LENGTH_LONG).show();
e.printStackTrace();
}
Spine spine = book.getSpine();
List<SpineReference> spineList = spine.getSpineReferences() ;
int count = spineList.size();
StringBuilder string = new StringBuilder();
String linez = null;
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 {
String line;
while ((line = reader.readLine()) != null) {
linez = string.append(line + "\n").toString();
//linez=line.toString();
}

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

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

}
final String mimeType = "text/html";
final String encoding = "UTF-8";
webView.loadDataWithBaseURL("", linez, mimeType, encoding,null);

}

请各位 friend 帮帮我。

最佳答案

ePub 本质上只不过是一个包含许多 HTML 文件的 zip 文件。通常,本书的每一章/节都有一个文件(资源)。

您现在正在做的是遍历书的书脊,加载您一次最多可以在屏幕上显示 1 个资源的所有资源。

我建议只加载您想要显示的资源,这会大大加快加载时间。

关于android - 需要很长时间才能在设备中显示 epub 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com