Android 打开本地pdf文件
程序员文章站
2024-02-05 16:50:04
android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用webview加载的,但是要用vpn才能搞,最后发现一个库挺不错的,再次分享给大家
and...
android 中打开pdf文件也是一种很常见的场景,但是上网找了好多资料,有用webview加载的,但是要用vpn才能搞,最后发现一个库挺不错的,再次分享给大家
android-pdfview。下面主要说一下该库的使用方法。
1. 该库的下载地址
https://github.com/joanzapata/android-pdfview
源码下载:
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); 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文件
-
sublime-text3 - 关于在sublime text 3 中配置一键浏览器打开php文件,并且是在localhost 本地服务器路径下
-
Android 读取文件的正确打开方法
-
html5写链接打开ios和android本地应用
-
sublime-text3 - 关于在sublime text 3 中配置一键浏览器打开php文件,并且是在localhost 本地服务器路径下
-
Android编程实现使用webView打开本地html文件的方法
-
Android webview打开本地图片上传实现代码
-
Android编程实现使用webView打开本地html文件的方法
-
Android webview打开本地图片上传实现代码