vudroid在显示一本书的内容时,如果你滑动屏幕,则会有如下显示:
此图中,左上角蓝色区域显示当前页数,右上角显示红色圈内显示当前正在加载。
这里我们可以想到有两种实现方案:
1)在BaseViewerActivity中处理用户翻页操作,比如滑动、点击上下左右键等。此时根据具体的用户操作计算需要显示哪几页,通知DocumentView去显示这些页,同时更新图中的蓝圈及红圈区域。
2)在DocumentView中处理用户翻页操作,比如滑动、点击上下左右键等。此时根据具体的用户操作计算需要显示哪几页,显示这些页,同时通知BaseViewerActivity去更新图中的蓝圈及红圈区域。
如果我来设计,我会选择方案1。但是在vudroid这个项目中,作者选择了方案2,而且实现的很巧妙。我们只介绍图中篮圈中内容的实现机制,红圈中内容的实现类似。
我们先来看一下这里涉及到的类(下图是我用EA画的,由于对ea及uml不是很熟悉,因此下图难免有错):
具体的函数调用是按如下顺序进行的:
1、初始化:
BaseViewerActivity.onCreate()
currentPageModel = new CurrentPageModel();
currentPageModel.addEventListener(this)(实际上是调用了EventDispatcher.addEventListener(Object listener))
2、执行(函数调用顺序为从上往下):
DocumentView.scrollTo()→DocumentView.onScrollChanged()→DocumentView.currentPageModel.setCurrentPageIndex()→EventDispatcher.dispatch(new
CurrentPageListener.CurrentPageChangedEvent(currentPageIndex))→CurrentPageListener.CurrentPageChangedEvent.dispatchOn(listener)→CurrentPageListener.CurrentPageChangedEvent.dispatchSafely(CurrentPageListener
listener)→BaseViewerActivity.currentPageChanged(int pageIndex)(实际上是调用了CurrentPageListener.currentPageChanged(int pageIndex))
只要了解清楚,这其中涉及到的类关系,同时把握住上面这些函数的调用顺序,你就可以理清整个框架了。
分享到:
相关推荐
基于vudroid源码的优化,在android中阅读PDF. 自己在项目中用到的,所以共享下,关键是没分了
开源 pdf 阅读器 android 版本源码。SVN下来的项目无法直接跑,我处理了一下,可直接用eclipse加载。供参考吧! 网址:http://code.google.com/p/vudroid/ 功能:pdf阅读、双指放缩 性能:加载很慢、慢也就罢了,...
vudroid android pdf阅读器可以阅读pdf和djvu格式文本的阅读器,采用不高ndk开发!
向大家推荐一款开源的android 下pdf阅读器源码 一起学习
代码使用ndk编程,使用libvudroid.so本地库,实现pdf文件阅读, 用户体验流畅,值得学习
VuDroid(Android PDF阅读器)源代码 具体使用可以看我的博客http://blog.csdn.net/l598252892
就是使用VuDroid 源码,做了个Demo
一个基于vudroid+mupdf的pdf阅读器. 在vudroid的基础上,使用了mupdf1.24版本的so,依赖的aar在https://download.csdn.net/download/archko/88845564 修正了阅读器的bug 支持epub,mobi格式. 添加了水平滚动. 优化的...
android-pdfview是一个Android类库,提供一个快速读取显示Android PDF文件的组件——PDFView,该组件支持手势、动画和缩放。并且基于Google的VuDroid类库解码PDF文件。可以通过手势滑动PDF文件、对PDF文件进行放大...
用于演示在手机屏幕上显示ppt和pdf文件内容的功能,其中读取ppt采用了读取纯文本与读取图文的两种方式,读取pdf采用了Vudroid框架和MuPDF框架分别进行解析,并对不同方式和框架进行了效果对比。
Android djvu and pdf viewer
用于演示在手机屏幕上显示ppt和pdf文件内容的功能,其中读取ppt采用了读取纯文本与读取图文的两种方式,读取pdf采用了Vudroid框架和MuPDF框架分别进行解析,并对不同方式和框架进行了效果对比。
libvudroid.so相信有很多朋友在寻找,我在使用vudroid等很多开源PDF阅读器代码时候都缺少的.so文件,我通过调用底层C库自己编译加载了一个.so文件~~~
实现android程序内打开pdf,基于vudroid ndk解析pdf
Android读取pdf,vudroid的一个例子,不支持双指粘合,仅供学习参考使用。
Vudroid是一款可以阅读pdf和djvu格式文本的阅读器。可以阅读本地的pdf文件,遇到大文件时渲染有点慢。
基于vudroid,以及别人的版本改的,非常简洁,能够快读读取pdf文件,不像其他资源那样读取需要很长的时间。只要改一下MainActivity中的文件路径即可,非常适合二次开发,能翻页,能放大缩小