Android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用WebView加载的,但是要用vpn才能搞,最后发现一个库挺不错的,再次分享给大家

android-pdfview。下面主要说一下该库的使用方法。

1. 该库的下载地址

2. android-pdfview的简单介绍

PDFView是这个库中最核心的类,用于加载pdf文件,PDFView是的实现是继承于SurfaceView来实现的。主要用到了建造者模式来设置相关的属性。

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.写一个布局文件

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.lidong.pdf.androidpdf.MainActivity">

android:id="@+id/pdfView"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

5.Activity的实现

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();

}

}

效果实现:

今天主要是简单使用一下,后面准备将该库进行拓展,是打开网络的pdf文件的功能。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程圈!

android 本地阅读pdf,Android 打开本地pdf文件相关推荐

  1. 移动硬盘新加卷变为本地磁盘且不能打开磁盘查看文件

    1.Windows98/ME:打开"控制面板","系统","设备管理器",打开CD-ROM的属性对话框,点"设置"选项卡 ...

  2. 怎么打开本地计算机策略编辑器,打开本地组策略编辑器; 2.在弹出的本地组策略编辑器窗口...

    因为工作需要有些用户会给电脑设置一个固定的IP地址,但是在其他用户接触这台电脑时可能会更改到IP地址.这时如不提前更改回来,会引起一些不必要的麻烦,那要如何防止其他用户更改IP呢?接下来小编就教大家W ...

  3. android 下载多个文件怎么打开,Android 下载一个资料以及打开这个apk文件

    Android 下载一个文件以及打开这个apk文件 下载一个网络文件的函数如下 public static File downLoadFile(String httpUrl) { // TODO Au ...

  4. win10计算机本地连接属性在哪里,Win10怎么打开本地连接属性_Win10打开本地连接属性教程-192路由网...

    问:Win10怎么打开本地连接属性?刚升级到Win10系统,对于Win10系统的操作不是太熟悉. 我在Win10系统上找了很久,都没有找到本地连接这个选项.请问Win10系统本地连接在哪里?怎么才能打 ...

  5. android获取阅读进度,Android 进度条

    ProgressBar是一个进度条控件,一般在需要做某个比较耗时的操作的时候,向用户展示执行进度,以免用户以为已经失去响应. 常用属性: style 设置进度条的样式 visible     是否显示 ...

  6. android导入html文件怎么打开,Android浏览器如何打开本地html文件

    有两种方法:1.代码如下:Intent intent=new Intent(); intent.setAction(android.intent.action.VIEW); Uri CONTENT_U ...

  7. c pdf转换html,c HTML文件转pdf文件怎么打开

    1 回答 2021-05-06 浏览:0 分类:办公入门 回答:直接就打开了,现在浏览器有这个功能 1 回答 回答: 方法: 有比较多的方法打开的HTML文件,那么下面就简单的介绍两个方法打开HTML ...

  8. python打开本地浏览器_使用webdriver打开本地浏览器--python版

    标签: 背景:经常性的,在项目中我们需要打开不同配置的不同浏览器.在学习selenium的过程中,打开本地火狐和本地chrome是一个稍微麻烦的事情,网上的java版本资料很多,但是python版的不 ...

  9. Android Studio中打开R.java文件的方法

    1 R.java文件简介 Android Studio中的R.java文件自动收录当前应用中所有的资源,并根据这些资源建立响应的ID,可以把R.java当成Android应用的资源字典.R.java文 ...

  10. 该页面仅以HTML格式保存_学用系列PDF批注保存不容易!Ashampoo PDF PK 悦书PDF

    整本书阅读中,最令人头痛的是文档协作共读的数据保存.有朋友推荐说可以使Ashampoo PDF与悦书PDF阅读器进行本地阅读批注,再分享给朋友.胖胖老师赶紧下载软件尝试PDF批注保存功能,看看究竟这样 ...

最新文章

  1. 禁用Chrome缓存进行网站开发
  2. Java-CGLib动态代理
  3. 在springboot中使用mybatis generate自动生成实体类和mapper
  4. Jackson 配置 ObjectMapper
  5. 【webservice】JAX-WS独立服务使用
  6. Java 并发编程之 ThreadLocal 线程局部变量
  7. 使用Python获取Excel文件中单元格公式的计算结果
  8. python从入门到实践答案第四章_《python从入门到实践》--第四章基本操作列表 重点及课后练习...
  9. 详解淘宝大秒杀系统设计,首次公开
  10. 如何以CustomValidator搭配jQuery AJAX进行Server端验证(转)
  11. c/s架构的ERP系统对接开票接口
  12. 希捷硬盘维修工具 v5.10.6 绿色免费版
  13. python爬取南京市房价_屌丝想买房,爬取南京20000多套二手房|上篇
  14. rails erb_您需要知道Rails中的erb以及如何掌握它
  15. git从远程仓库拉取指定日期版本的代码到本地
  16. 随机手机号码_微信绑定了手机号码怎么解绑
  17. 【兴趣】无需电和油的水锤泵的抽水方式
  18. 转载:软件天才与技术民工
  19. html5字体在线代码,网络字体@font-face 如何处理网页中的特殊字体
  20. java课程报告答辩_Java课程设计答辩之感想

热门文章

  1. 情商 智商 逆商,哪个最重要?
  2. Linux中删除文件,磁盘空间未释放问题追踪
  3. The Performance of µ-Kernel-Based Systems
  4. Python123 货币转换Ⅰ
  5. delta pi sigma_数学符号π (Pi)、Σ(Capital Sigma)、μ (Mu) 、σ(sigma)、∏(capital pi), ∫(Integral Symbol)的来历...
  6. oracle实用教程选择题,第3章 表与表数据操作 Oracle实用教程(第3版)PPT.ppt
  7. 换个角度来看看C++中的左值、右值、左值引用、右值引用
  8. mysql聚簇索引和非聚簇索引的区别_聚簇索引与非聚簇索引的区别
  9. STL 自定义sort 前缀和差分练习
  10. 资格考试_第二章_证券投资基金概述