- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何为从 Epub
填充的 WebView
创建分页
。
我的MainActivity.java
:
public class MainActivity extends ActionBarActivity implements OnClickListener {
WebView webView;
Handler hand;
String data = null;
LinearLayout books;
int pagecount = 1;
Book book;
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hand = new Handler();
webView = new WebView(this);
books = (LinearLayout) findViewById(R.id.book);
AssetManager assetManager = getAssets();
try {
InputStream epubInputStream = assetManager.open("mybook.epub");
book = (new EpubReader()).readEpub(epubInputStream);
Log.i("Log_one", "author(s): " + book.getMetadata().getAuthors());
Log.i("Log_two", "title: " + book.getTitle());
Bitmap coverImage = BitmapFactory.decodeStream(book.getCoverImage().getInputStream());
Log.i("Log_three", "Coverimage is " + coverImage.getWidth() + " by " + coverImage.getHeight() + " pixels");
logTableOfContents(book.getTableOfContents().getTocReferences(), 0);
Spine spine = book.getSpine();
List<SpineReference> spineList = spine.getSpineReferences();
int count = spineList.size();
Button btnnext = (Button) findViewById(R.id.btnNext);
Button btnPreviuse = (Button) findViewById(R.id.btnPreviuse);
btnnext.setOnClickListener(this);
btnPreviuse.setOnClickListener(this);
} catch (IOException e) {
Log.e("Log_four", e.getMessage());
}
}
private void logTableOfContents(List<TOCReference> tocReferences, int depth) {
if (tocReferences == null) {
return;
}
for (TOCReference tocReference : tocReferences) {
StringBuilder tocString = new StringBuilder();
for (int i = 0; i < depth; i++) {
tocString.append("\t");
}
tocString.append(tocReference.getTitle());
Log.i("Log_five", tocString.toString());
logTableOfContents(tocReference.getChildren(), depth + 1);
}
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btnNext) {
try {
int i = pagecount + 7;
webView = new WebView(this);
books = (LinearLayout) findViewById(R.id.book);
data = new String(book.getContents().get(i).getData());
webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null);
books.addView(webView);
} catch (IOException e) {
e.printStackTrace();
}
} else if (v.getId() == R.id.btnPreviuse) {
try {
int i = pagecount - 1;
webView = new WebView(this);
books = (LinearLayout) findViewById(R.id.book);
data = new String(book.getContents().get(i).getData());
webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null);
books.addView(webView);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
当我点击
按钮时,我需要查看另一个页面
,但我看不到。我的activity_main.xml
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/book"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/Footer"
android:layout_width="match_parent"
android:layout_height="100dip"
android:layout_weight="1"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/btnNext"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:text="Next Page" />
<Button
android:id="@+id/btnPreviuse"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:text="Previuse Page" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
如何在我的页面上创建分页
。
最佳答案
@Override
public void onClick(View v) {
if(v.getId() == R.id.btnNext){
try {
books.removeAllViews();
int i = pagecount + y;
y = i;
webView = new WebView(this);
books = (LinearLayout) findViewById(R.id.book);
data = new String(book.getContents().get(y).getData());
webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null);
books.addView(webView);
} catch (IOException e) {
e.printStackTrace();
}
}else if(v.getId() == R.id.btnPreviuse){
try {
books.removeAllViews();
int i = y - pagecount;
y = i;
webView = new WebView(this);
books = (LinearLayout) findViewById(R.id.book);
data = new String(book.getContents().get(y).getData());
webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null);
books.addView(webView);
} catch (IOException e) {
e.printStackTrace();
}
}
}
关于java - 如何在 epub 页面中创建分页?安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25605835/
我开发了一个基于网络的e pub阅读器,我想添加一个评论功能,例如adobe PDF阅读器评论功能,这样如果我在其他e中打开该e pub,评论应该保存在e pub中酒吧读者我可以看到评论。 最佳答案
我使用 .NET 中的 ZipArchive 编写了一个 ePub 生成器,并查看了规范(在 Wikipedia 中)和一个示例。 这行不通!但我只收到一个一般性错误,所以我无法从这里修复任何东西。
我正在使用最优秀的 PHP 库 ePub从存储在我的数据库中的 HTML 即时创建数字图书。 因为这些是合集的一部分,所以我为每本书都附上了封面图片。代码中一切正常,但根据解释 ePub 的设备/软件
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 9 年前。 Improve
我有一堆 EPUB 书籍,如果我有 Kindle,我必须将它们转换为 MOBI。我想知道在从 EPUB 到 MOBI 的转换过程中是否一定会丢失任何细节(例如元数据、布局信息),反之亦然,类似于 MP
我正在尝试制作双语电子书。我希望它排版成两列,一种语言在左边,另一种在右边。 这可能与 epub 规范有关吗? 最佳答案 这是很有可能的,有两种不同的方式: 列(由 wikisource epub e
我制作了一个应用程序,其中我实现了 ePub 阅读器,它可以解压缩文件并解析 xml 文件。我在S.O.上采用了这个问题的方法。 Reading ePub format . 在我用客户端的更新文件替换
我正在开发EPUB 阅读器。我想了解一些与市场上其他 EPUB 阅读器相关的信息(例如 Cool reader、FBReader、Amazon Kindle 等等)。 他们使用什么类型的 View 来
是否有任何编程方法可以安全地检查 epub 文件是否受 DRM 保护(加密)? 我发现 META-INF 目录中可能有一个 rights.xml 和一个 encryption.xml。 这些文件中的任
我正在使用 pandoc 作为创建 epub 书籍的一种方式。它通过检测书中的所有 H1 标签自动创建目录。这很有效,只是每个 epub 都有一个指向标题页的 TOC 链接,这是我不需要的。 我如何摆
我正在 iPhone 上开发一个简单的 epub 阅读器,但一直想知道如何加载它。我知道阅读 PDF 等文件有些简单,因为它本身就是一个文件,可以使用 UIWebView 或 CoreGraphics
我正在使用 https://github.com/augustl/js-epub解析 .epub 文件。但我得到错误“XML 解析错误:未找到元素”。我在第 3 步之前没有遇到问题,它在后处理步骤中失
我对如何实现 epub.js 感到困惑。 ( https://github.com/futurepress/epub.js/blob/master/documentation/README.md )
我正在开发 ibook 应用程序之类的 iphone 应用程序。我加载了 UIWebView 中解析 epub 文件后获得的 XML 文件的内容。我更改了字体大小 & UIWebView 内容的字体系
刚开始使用 FuturePress/epub.js。并与 vue.js 一起使用 ‹ ›
我正在尝试将 epub 文件解析为 UIWebView。我解析成功了。但我无法设置字体大小。意味着当点击 epub 文件页面时,字体需要增加。我添加了 UISearchBar,但如果我输入文本,它就无
我正在使用 Pandoc 将 Markdown 文件转换为 ePub。我可以使用 --template 选项自定义自动生成的标题页。 现在我正在尝试对自动生成的目录执行相同的操作。这可能吗? 我可以使
我想使用动态 html 作为源创建类似于 epub/ebook 阅读器(如 Kindle 应用程序或 iBooks)的响应式、移动优化阅读体验。 想象一下需要大量垂直滚动才能阅读的长篇文章或博客文章,
在流行的桌面电子书查看器(如 calibre、FBreader 或 Cool Reader)中,我缺少一项功能,即以与打印版电子书相同的页码显示电子书。有些人(也在这里)声称 epub 没有页面概念(
Apple 对 ePub 3 脚注的支持详见 Liz Castro . 简而言之,如果脚注链接有 epub:tupe="noteref"格式: 1 脚注文本位于 用 epub:type="footno
我是一名优秀的程序员,十分优秀!