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. 周志华教授公布IJCAI 2021投稿量:4204篇,相比去年下降10%!
  2. 学界 | 和清华大学自然语言处理与社会人文计算实验室一起读机器翻译论文
  3. HashMap 与 Hashtable 的区别
  4. sql怎么把小数变百分比_云计算基本技能有哪些 怎么监控Linux系统内存
  5. 【linux】【tar】tar命令详解之czvf,xzvf
  6. gulp 实现sass自动化 ,监听同步
  7. 关于nunit调试VS2010中的4.0程序集的问题
  8. FileZilla Server下载以及安装使用
  9. 实现安卓中TextView,EditText中数字的数码管字体显示
  10. 嗜血法医第一二三季/Dexter全集迅雷下载
  11. Flask 创建app 时候传入的 static_folder 和 static_url_path参数理解(1ni)
  12. 别踩白块游戏java项目总结_学习小游戏别踩白块总结
  13. EasyExcel Invalid row number (65536) outside allowable range
  14. 大学计算机人工智能知识点,人工智能及其应用知识点整理
  15. EasyExcel生成多个excel.xlsx进行压缩导出
  16. MPEG4与H.264的区别(音视频规范总结)
  17. wincc7.3与MYSQL_Wincc7.3学习之——如何建立起数据库链接
  18. 国考证监会计算机考试真题
  19. js-xlsx,table_to_book导出数据取消自动加工
  20. Hello,你好JAVA

热门文章

  1. 入门爬虫二三记(一):爬取酷狗音乐榜单Top500
  2. 【狂神说笔记—— Java基础17-JavaScript,jQuery】
  3. IB幼儿课程怎么理解?
  4. 马士兵的经典名言!!!
  5. nacos cloud 配置中心中 修改properties格式内容并发布然后在浏览器页面刷新无效果
  6. 【数字设计与计算机体系结构】2021-09-26-数字设计与计算机体系结构课程(四)
  7. python小工具—窗口轰炸
  8. Matlab之图像空间变换(六)
  9. 4244. 【五校联考6day2】yi
  10. 同款蓝牙耳机为什么会串联_为什么蓝牙耳机不能两个同时使用