http://code.google.com/p/apv/
这是项目地址,hg下载需要代理。似乎是天朝的问题。不说了。

apv是一个功能强大的阅读pdf的Android软件,它的主要功能在于阅读,高级版本还提供了书签导航功能,Market里这个版本要付费,自己编译的话也可以去除这些限制。
可惜的是它对cjk的支持,估计作者不会是亚洲等cjk字体需要的人所以去除cjk字体支持也是正常的,不过它的c库mupdf就可以支持。

[b]顺便赞下,apv的缓存功能,图片是切割成块的,只要 原始显示图片不变,就是缩放级别固定,它们会把一张图片切割成固定大小的块,然后按照当前屏幕需要显示出一些块,所以在加载时,如果有些慢就会看到一块一块从黑到白的显示。再一旦加载成功后拖动,不会再调用c切割,当然流畅许多了。[/b]

然而我下载了mupdf,它的示例太简单了,本人c语言能力有限,修改了下发现要实现apv的类似功能太遥远了。不过已经可以显示中文。

cjk字体支持去除的问题会导致一些中文pdf非扫描版无法观看,扫描版不会有这个问题。

apv底层库支持,所以中文等字体应该可以显示的啊,它在K:\apv\pdfview\jni\mupdf\pdf\Android.mk文件里去除了,只需要打开,再编译就可以正常显示中文了。
大约是第9行:
#LOCAL_CFLAGS := -DNOCJK -O3 -DARCH_ARM
LOCAL_CFLAGS := -O3 -DARCH_ARM上面那行修改成下面的就可以 了,因为NOCJK会在K:\apv\pdfview\jni\mupdf\pdf\pdf_fontfile.c里用到

#ifdef NOCJK
#define NOCJKFONT
#endif

#include "../generated/font_base14.h"

#ifndef NODROIDFONT
#include "../generated/font_droid.h"
#endif

#ifndef NOCJKFONT
#include "../generated/font_cjk.h"
#endif
最后 一句就是有没有包含cjk.h文件

再编译,打包就可以了。

[b]如果这时出错,是正常的,因为mupdf有支持它,所以会有在generated目录里生成多个头文件,而apv去除了,自然不会有,所以下载
mupdf然后make就会产生头文件了,把apv少的放进去,修改前面的
Android.mk再用ndk编译,搞定。ndk编译不会的请看另一篇文章,我在编译时产生so文件,打包apk发现没有把so文件加载,所以先去除ndk编译的builder,生成so文件后就不需要它了。[/b]

顺便说下mupdf的问题,从readme.txt文件可以看出,make出错是无关的,因为我们只需要它产生generated这个文件夹里的一些文件。所以make提示异常不要慌
最后到mupdf下载的是配套的第三方库,新旧版本间可能会有些问题。

God Forgive Me,最后上传最后的结果,有些大,因为cjk库的问题,没有的话只有2m。作者说过在market上有pro版本,所以这里只存放一段时间。

apv似乎没有设置常亮模式,阅读书籍时很不方便,这个可以自己加上,在ImageView中keepOn属性加入就可以了.另外,屏幕的亮度也没有,可以修改的,这些功能如果再加上,就更好了,作者似乎没有这方面的考虑,而且最近也没见更新,所以需要的人可以自己添加了.

附件是我添加了屏幕常量,亮度的apk,还翻译了一些英文,增加了文件大小,虽然不是很好。

hg需要 墙,天朝。。。
打包工程,去除deps还有71m,上传到网盘:最近115不能随便分享了。

百度网盘:http://pan.baidu.com/share/link?shareid=142940&uk=1191240612 这是包含了源码,稍微有点早,因为最近有更新了mupdf。不过没有新功能。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐