在翻页示例项目中,在
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
。
之前没有人做过吗?或者有人可以帮我完成这个任务吗?!
编辑:
我发现另一个名为fbreaderJ的带卷曲效果的开源PDF阅读器。它的开发者说:“一个允许在FBReader中打开PDF文件的附加模块。基于radaee pdf库。”
我感到困惑!因为radaeepdf是闭源的,而downloadable project仅用于演示,并且插入的用户名和密码是为此软件包而设定的。 人们想要更改整个fbreader项目,例如软件包名称。
另一个让我困惑的问题是,这个附加模块的源代码在哪里?!
无论如何,如果有人想帮助我,fbreader做得非常好。
编辑:
我与开发muPDF(或其中一位开发者)的Robin Watts进行了交谈,他说:
你读过platform/android/ClassStructure.txt吗?MuPDF主要是一个C库。标准API因此是C API。我们没有将该API完全暴露给Java(这将是最好的解决方案,我已经做了一些工作,但由于时间不足而未完成),而是实现了MuPDFCore来封装我们需要的部分。MuPDFCore处理打开PDF文件并从中获取位图以在视图中使用的部分,或者更确切地说,MuPDFCore返回“视图”,而不是“位图”。如果您需要位图,则需要在MuPDFCore中进行更改。
更改MuPDFReaderView类的一小部分时会出现太多错误。我感到困惑!这些彼此相关。
请回答更加精确。
编辑:
赏金已过期。