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 打开本地pdf文件,android 加载pdf文件_第1张图片

        

Android 打开本地pdf文件,android 加载pdf文件_第2张图片

       

更多相关文章

  1. Android Manifest文件
  2. 基于“ViewHolder”技术提升Android ListView中Item View加载效
  3. Android 中.aar文件生成方法与用法
  4. Android文件存取
  5. android中异步加载图片
  6. Android Activity的四种加载模式
  7. Android初始化语言 (init.*.rc、init.conf文件格式)
  8. Android热修复(二):以DexClassLoader类加载原理编写demo实现类替换
  9. Android 模拟器安装apk文件

随机推荐

  1. Android(安卓)自定义View之坐标系(一)
  2. 【Android】SD卡的安全存储问题
  3. Android撬动IT市场的新支点!
  4. Android教程之一:Window下搭建Android开发
  5. Android程序员必看之Android六大优势
  6. Android撬动IT市场的新支点
  7. Android与物联网设备通信-概念入门
  8. 简析Android对Linux内核的改动-(上)
  9. Android将允许纯C/C++开发应用
  10. 最封闭的开源系统:话说 Android(安卓)的八