Android 打开本地pdf文件,android 加载pdf文件
16lz
2021-01-23
android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用webview加载的,但是要用才能搞,最后发现一个库挺不错的,再次分享给大家
android-pdfview。下面主要说一下该库的使用方法。
1. 该库的下载地址
https://github.com/joanzapata/android-pdfview (android studio)
源码下载:http://download.csdn.net/download/huningjun/10236321(eclipse)
2. android-pdfview的简单介绍
pdfview是这个库中最核心的类,用于加载pdf文件,pdfview是的实现是继承于surfaceview来实现的。主要用到了建造者模式来设置相关的属性。
[Java] 查看源文件 复制代码 ?01 02 03 04 05 06 07 08 09 10 11 | fromfile(file) //设置pdf文件地址 fromasset(assetfilename) //设置pdf文件地址 defaultpage( 1 ) //设置默认显示第1页 onpagechange( this ) //设置翻页监听 onload( this ) //设置加载监听 ondraw( this ) //绘图监听 showminimap( false ) //pdf放大的时候,是否在屏幕的右上角生成小地图 swipevertical( false ) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页 enableswipe( true ) //是否允许翻页,默认是允许翻页 pages() //把2 , 3 , 4 , 5 过滤掉 load(); |
3. 在项目的build.gradle添加这个依赖
compile 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'
4.写一个布局文件
[Java] 查看源文件 复制代码 ?1 | < |
5.activity的实现
[Java] 查看源文件 复制代码 ?01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | package com.lidong.pdf.androidpdf; import android.graphics.canvas; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.view.viewtreeobserver; import android.widget.toast; import com.joanzapata.pdfview.pdfview; import com.joanzapata.pdfview.listener.ondrawlistener; import com.joanzapata.pdfview.listener.onloadcompletelistener; import com.joanzapata.pdfview.listener.onpagechangelistener; import java.io.file; public class mainactivity extends appcompatactivity implements onpagechangelistener ,onloadcompletelistener, ondrawlistener { private pdfview pdfview ; @override protected void oncreate(bundle savedinstancestate) { super .oncreate(savedinstancestate); setcontentview(r.layout.activity_main); pdfview = (pdfview) findviewbyid( r.id.pdfview ); //从assets目录读取pdf displayfromassets( "0010000022464002f__李东.pdf" ); //从文件中读取pdf // displayfromfile( new file( "filename")); } private void displayfromassets(string assetfilename ) { pdfview.fromasset(assetfilename) //设置pdf文件地址 .defaultpage( 1 ) //设置默认显示第1页 .onpagechange( this ) //设置翻页监听 .onload( this ) //设置加载监听 .ondraw( this ) //绘图监听 .showminimap( false ) //pdf放大的时候,是否在屏幕的右上角生成小地图 .swipevertical( false ) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页 .enableswipe( true ) //是否允许翻页,默认是允许翻页 // .pages() //把 5 过滤掉 .load(); } private void displayfromfile( file file ) { pdfview.fromfile(file) //设置pdf文件地址 .defaultpage( 6 ) //设置默认显示第1页 .onpagechange( this ) //设置翻页监听 .onload( this ) //设置加载监听 .ondraw( this ) //绘图监听 .showminimap( false ) //pdf放大的时候,是否在屏幕的右上角生成小地图 .swipevertical( false ) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页 .enableswipe( true ) //是否允许翻页,默认是允许翻 // .pages( 2 ,5 ) //把2 5 过滤掉 .load(); } /** * 翻页回调 * @param page * @param pagecount */ @override public void onpagechanged( int page, int pagecount) { toast.maketext( mainactivity. this , "page= " + page + " pagecount= " + pagecount , toast.length_short).show(); } /** * 加载完成回调 * @param nbpages 总共的页数 */ @override public void loadcomplete( int nbpages) { toast.maketext( mainactivity. this , "加载完成" + nbpages , toast.length_short).show(); } @override public void onlayerdrawn(canvas canvas, float pagewidth, float pageheight, int displayedpage) { // toast.maketext( mainactivity.this , "pagewidth= " + pagewidth + " // pageheight= " + pageheight + " displayedpage=" + displayedpage , toast.length_short).show(); } } |
效果实现:
更多相关文章
- Android Manifest文件
- 基于“ViewHolder”技术提升Android ListView中Item View加载效
- Android 中.aar文件生成方法与用法
- Android文件存取
- android中异步加载图片
- Android Activity的四种加载模式
- Android初始化语言 (init.*.rc、init.conf文件格式)
- Android热修复(二):以DexClassLoader类加载原理编写demo实现类替换
- Android 模拟器安装apk文件