Android 打开本地打开本地pdf文件文件
Android 中打开pdf文件也是一种很常见的场景,本文主要介绍了Android打开本地pdf文件的方法。具有很好的
参考价值。下面跟着小编一起来看下吧
Android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用WebView加载的,但是要用vpn才能搞,最后发
现一个库挺不错的,再次分享给大家
android-pdfview。下面主要说一下该库的使用方法。
1. 该库的下载地址该库的下载地址
https://github.com/JoanZapata/android-pdfview
源码下载:http://xiazai.jb51.net/201704/yuanma/android-pdfview-master_jb51.rar
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.写一个布局文件写一个布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
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">
<com.joanzapata.pdfview.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</RelativeLayout>
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);