Mupdf源码分析之MuPDFActivity类分析(一)
来源:互联网 发布:淘宝运营公司 编辑:程序博客网 时间:2024/05/22 09:49
最近一直在做毕业设计,是有关pdf阅读的app。之前也上网找了很多开源库,发现MUPDF确实是最多人推荐的,下个实现案例感觉确实功能挺多的。废话不多说,作为在下的第一篇处女座技术博客,希望能起个好头吧。
因为MUPDF库还是不少代码量的,自然不可能一下子把源码分析完,此次分析的是个人认为比较直接的MuPDFActivity类。
MuPDFActivity是一个具体实现类,是直接阅读文档时所运用到的类:其中包括点击界面触发的一系列事件、对文档进行复制、重排、搜索以及其他的注解点击事件。
@Overrideprotected void onHit(Hit item) { switch (mTopBarMode) { case Annot: if (item == Hit.Annotation) { showButtons(); mTopBarMode = TopBarMode.Delete; mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal()); } break; case Delete: mTopBarMode = TopBarMode.Annot; mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal()); // fall through default: // Not in annotation editing mode, but the pageview will // still select and highlight hit annotations, so // deselect just in case. MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView(); if (pageView != null) pageView.deselectAnnotation(); break; }}
这是在阅读界面时,点击界面发生的事件,包括所有功能下你点击界面时都会触发的方法。代码很简单,就是在哪种条件下(名字起得一下就看懂了)TopBar所显示的具体工具条。
public void OnCopyTextButtonClick(View v) { mTopBarMode = TopBarMode.Accept; mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal()); mAcceptMode = AcceptMode.CopyText; mDocView.setMode(MuPDFReaderView.Mode.Selecting); mAnnotTypeText.setText(getString(R.string.copy_text)); showInfo(getString(R.string.select_text));}这个也很明显,就是点击复制按钮时所触发的事件,其实后面那些触发事件都很明显,这个库唯一令我觉得有点麻烦的就是注释不是很多,英文注释看起来也很吃力。所以我经常会在每个方法里面加一句Toast消息提示框,用这个来验证我的猜想还是挺方便的。
马上有事要出去了,我的第一篇处女博客就到这吧,后面还会有继续的分析。
这个只是我的第一次尝试,我也知道自己很水,所以还有很多要学习的。
1 0
- Mupdf源码分析之MuPDFActivity类分析(一)
- PDF阅读器系列之--MuPDF源码分析过程(一)
- PDF阅读器系列之--MuPDF源码分析过程(一)
- PDF阅读器系列之--MuPDF源码分析过程(二)
- PDF阅读器系列之--MuPDF源码分析过程(二)
- mupdf源码分析
- Memcached源码分析之状态机(一)
- 源码分析之tinyhttpd(一)
- XUtils源码分析之HttpUtils(一)
- HDFS源码分析之UnderReplicatedBlocks(一)
- MapReduce源码分析之JobSubmitter(一)
- PackageManagerService源码分析之入门(一)
- MapReduce源码分析之JobSubmitter(一)
- 【Zookeeper】源码分析之服务器(一)
- kubenetes源码分析之DNS(一)
- kubernetes 源码分析之kubeadm(一)
- kubernetes 源码分析之ingress(一)
- Spring源码分析之AOP(一)
- LayoutParams参数的意义
- newinstance()和new有什么区别?
- JAVA学习笔记
- halcon学习笔记(5)——QT和Halcon配置c++混合编程
- [阶段二]Android UI PopupWindow组件
- Mupdf源码分析之MuPDFActivity类分析(一)
- 统计分享年鉴
- LibGdx文档译读(十七) FileHandle类
- 深入实践boost读书笔记2
- android面试题总结
- 实现两个int类型变量值的交换,要求不使用中间变量
- 安卓开发学习之006 LinearLayout.LayoutParams详解
- android Studio快捷键大全
- 根据日期动态创建数据库的存储过程