【发布时间】:2015-08-31 17:55:22
【问题描述】:
我正在使用muPDF 在我的应用程序中阅读 PDF。我不喜欢它的默认动画(水平切换)。另一方面,我发现 this 用于图像卷曲效果的辉煌库,以及用于布局翻转效果的 this 项目。
在 curl 示例项目中,CurlActivity 中的所有数据都是图像,并在PageProvider 中设置如下:
private class PageProvider implements CurlView.PageProvider {
// Bitmap resources.
private int[] mBitmapIds = { R.drawable.image1, R.drawable.image2,
R.drawable.image3, R.drawable.image4};
并像这样使用它:
private CurlView mCurlView;
mCurlView = (CurlView) findViewById(R.id.curl);
mCurlView.setPageProvider(new PageProvider());
而CurlView 扩展自GLSurfaceView 并实现View.OnTouchListener, CurlRenderer.Observer
但如果我没记错的话,在 muPDF 中,数据位于 core 对象中。 core 是 MuPDFCore 的实例。并像这样使用它:
MuPDFReaderView mDocView;
MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
mDocView.setAdapter(new MuPDFPageAdapter(this, this, core));
MuPDFReaderView 扩展 ReaderView 和 ReaderView 扩展 AdapterView<Adapter> 并实现 GestureDetector.OnGestureListener, ScaleGestureDetector.OnScaleGestureListener, Runnable。
我的问题是如何在 muPDF 中使用卷曲效果?我应该在哪里一页一页地获取页面并将它们转换为位图?然后将 muPDF 中的 Adapter 的各个方面更改为 CurlView。
在翻盖示例项目中,在FlipHorizontalLayoutActivity(我也喜欢这种效果)中,我们有这些:
private FlipViewController flipView;
flipView = new FlipViewController(this, FlipViewController.HORIZONTAL);
flipView.setAdapter(new TravelAdapter(this));
setContentView(flipView);
而FlipViewController 扩展了AdapterView<Adapter>,而TravelAdapter 中的数据集扩展了BaseAdapter。
以前没有人这样做过吗?或者可以帮我做吗?!
编辑:
我发现了另一个不错的带有卷曲效果的开源 PDF 阅读器,名为 fbreaderJ。它的开发者说“一个允许在 FBReader 中打开 PDF 文件的additional module。基于 radaee pdf 库。”
我糊涂了!因为radaeepdf 是封闭源代码,downloadable project 仅用于演示,插入的用户名和密码用于此包。 人们想要更改整个 fbreader 项目,例如包名。
另一个让我困惑的问题是这个附加模块源代码在哪里?!
不管怎样,如果有人想帮助我,fbreader 已经做得很好了。
编辑:
我与开发 muPDF(或其中一位开发人员)的 Robin Watts 进行了交谈,他说:
你读过 platform/android/ClassStructure.txt 吗? MuPDF 是 主要是一个 C 库。因此,标准 api 是 C 的。相当 而不是将 API 完全按原样暴露给 Java(这将是 最好的解决方案,我已经做了一些工作,但是有 由于时间不够,没有完成),我们已经实现了 MuPDFCore 总结我们需要的部分。 MuPDFCore 处理打开 PDF 文件, 并从中获取位图以在视图中使用。或者更确切地说,MuPDFCore 返回“视图”,而不是“位图”。如果你需要位图,那你就去 需要在 MuPDFCore 中进行更改。
更改 MuPDFReaderView 类的一小部分时错误太多。我有点迷惑不解了!这些是相互关联的。
请准确回答。
编辑:
赏金已过期。
【问题讨论】:
-
你有什么解决办法吗?
-
@AnandSavjani 我没有测试选中的答案,但它似乎有效。
标签: android opengl-es flip mupdf page-curl