Android PDF开发:android-pdfview

2023-10-30

Android PDF开发:android-pdfview


Android平台自身没有直接可以阅读和处理pdf的方案,在github上面有一个第三方开源的pdf开发SDK,其主页地址是:

https://github.com/JoanZapata/android-pdfview 

android-pdfview使用比较简单,关键的地方是PDFView,将PDFView作为像Android的ImageView或者TextView一样写进xml布局文件:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent" >

    <com.joanzapata.pdfview.PDFView
        android:id="@+id/pdfView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</FrameLayout>



然后在Java上层代码直接加载pdf文件资源装载进去即可:

package zhangphil.pdfview;

import com.joanzapata.pdfview.PDFView;
import com.joanzapata.pdfview.listener.OnPageChangeListener;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		PDFView pdfView = (PDFView) findViewById(R.id.pdfView);

		// 在我这个测试例子中,事先准备一个叫做sample.pdf的pdf大文件放到assets目录下。
		// 从assets文件目录下读取名为 sample.pdf的文件,缺省把该pdf定位到第一页。
		pdfView.fromAsset("sample.pdf").defaultPage(1).onPageChange(new OnPageChangeListener() {

			@Override
			public void onPageChanged(int page, int pageCount) {
				// 当用户在翻页时候将回调。
				Toast.makeText(getApplicationContext(), page + " / " + pageCount, Toast.LENGTH_SHORT).show();
			}
		}).load();
	}
}



我把该第三方开源库整理成Eclipse下可用的lib,上传到github上,地址链接:
https://github.com/zhangphil/android-pdfview-lib-for-eclipse 
使用时候,下载该lib,导入到eclipse作为lib,然后在项目中直接引用即可。

转载于:https://my.oschina.net/zhangphil/blog/1602214

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android PDF开发:android-pdfview 的相关文章

随机推荐

  • Java实现扑克牌自动发牌系统

    利用Java的ArrayList实现随机给三个人发扑克牌 import java util ArrayList import java util List import java util Random class Card private
  • Linux 必备工具, 命令与例子

    目录 1 wget 2 screen 3 unzip gzip 4 netstat 5 git 6 composer 7 docker 8 docker compose 9 timedatectl set timezone Asia Sha
  • binfmt_misc

    一 binfmt misc是什么 binfmt misc是内核中的一个功能 它能将非本机的二进制文件与特定的解析器自动匹配起来 进行二进制解析 例如 在x86上解析arm64架构的二进制 通过binfmt misc可以注册解析器来处理指定二
  • JNI GetFieldID和GetMethodID函数解释及方法签名

    1 GetFieldID是得到java类中的参数ID GetMethodID得到java类中方法的ID 它们只能调用类中声明为 public的参数或方法 举例说明 jclass c env gt FindClass env com came
  • nodejs开发环境安装

    安装环境 win7 64位 访问nodejs官网 http nodejs org 点击Download链接 选择Windows Installer 下载安装包 直接安装即可 安装成功后 在命令窗口 cmd node 查看是否成功 若果没有成
  • UART、RS-232、RS-422、RS-485的区别

    v3学院带你一次性认清UART RS 232 RS 422 RS 485的区别 https www cnblogs com laokai p 6488910 html 通讯问题 和交通问题一样 也有高速 低速 拥堵 中断等等各种情况 如果把
  • LBP算法及其改进算法

    LBP LBP指局部二值模式 英文全称 Local Binary Pattern 是一种用来描述图像局部特征的算子 LBP特征具有灰度不变性和旋转不变性等显著优点 它是由T Ojala M Pietik inen 和 D Harwood在1
  • 第二十五章 Chisel进阶——隐式参数的应用

    用Chisel编写的CPU 比如Rocket Chip RISCV Mini等 都有一个特点 就是可以用一个配置文件来裁剪电路 这利用了Scala的模式匹配 样例类 偏函数 可选值 隐式定义等语法 本章内容就是来为读者详细解释它的工作机制
  • VC++ HBITMAP保存文件

    请先看下面这段代码 BOOL SaveBmp HBITMAP bmp string path FILE f fopen path c str wb if f return 0 BITMAP bmpinfo GetObject bmp siz
  • 既然敢于炮轰C++,那么Linus的C++造诣和编程水平如何呢?

    之前有一篇文章谈到Linux 之父对 C 进行了炮轰 说它是糟糕程序员的垃圾语言 引起了大家的较多讨论 毕竟 我们都知道Linus Torvalds为了Linux内核开发而专门打造的版本控制软件Git已经引起了业界的广泛关注 后来又看到大家
  • MSF令牌窃取

    令牌简介及原理 令牌就是系统的临时密钥 相当于账户名和密码 原来决定是否允许这次请求和判断是属于哪一个用户的 他允许你不提供密码或其他凭证的前提下访问网络和系统资源 令牌最大的特点就是随机性 不可预测 一般黑客或软件无法猜测出来 令牌有很多
  • Docker 镜像和容器的导入导出及常用命令

    作者 微枫Micromaple 来源 CSDN博客 Docker 镜像和容器的导入导出 1 1 镜像的导入导出 1 1 1 镜像的保存 通过镜像ID保存 方式一 docker save image id gt image save tar
  • Redis数据迁移:方法二AOF

    启动2个实例 开启AOF备份 源实例 127 0 0 1 7000 目标实例 127 0 0 1 8000 127 0 0 1 7000 中有k1 k100 一共100个key 文件目录如下 7000 conf配置如下 standalone
  • 计算机用户帐户域怎么查找,win7计算机域怎么查?小编教你查看计算机域、工作机组的方法...

    win7计算机域怎么查 当我们在同一个工作机组的情况下我们可以互相访问传输文件 非常方便 但是有的用户的工作机组或者域不同导致无法正常使用局域网的现象 这个时候我们就可以通过查看这些计算机使用的域工作机组是否一致 在 域 模式下 至少有一台
  • 突破50亿美元的想象:RPA市场持续被看好

    RPA 机器人流程自动化 指用软件机器人实现业务处理的自动化 是当下科技领域最热门的一个领域之一 RPA机器人使用用户界面 UI 捕获数据并模拟人类操作应用程序 它们能够模仿大多数人类用户的行为 识别 触发 响应并和其他系统进行通信 以此来
  • 控制台运行XX.jar时出现 “jar中没有主清单属性“解决方法

    1 首先我是用Maven导出到包 得到的jar文件保存在 2 在这个文件目录下cmd运行 执行java jar 01helloworld jar这句命令提示出现 XX jar中没有主清单属性 3 解决方法 有两种解决办法 springboo
  • 上传本地Vue项目到github和gh-pages预览

    利用git命令将项目上传到github 1 登陆自己的github账号 点击new repository进行创建一个新的仓库 如下图所示 2 用命令将项目上传 1 先进入项目文件夹 通过命令 git init 把这个目录变成git可以管理的
  • webpack5学习笔记—基础篇

    目录 1 webpack 1 1 Webpack是什么 有什么用 1 2 webpack的几个概念 2 webpack的基础使用 3 2 1 安装 3 2 2 webpack配置文件 3 2 3 打包命令 3 资源模块 resource i
  • 小米9008授权账号_小米手表体验:中肯点评,这是一款优点和缺点同样突出的智能手表...

    前不久 小米推出了两款智能手表 一款是方形表盘设计的小米手表 一款是圆形表盘的小米手表Color 除了价格上的区别 小米手表要比小米手表Color功能更丰富些 价格也要比小米手表Color贵一点 虽然小米手表Color的圆形圆盘更好看些 但
  • Android PDF开发:android-pdfview

    Android PDF开发 android pdfview Android平台自身没有直接可以阅读和处理pdf的方案 在github上面有一个第三方开源的pdf开发SDK 其主页地址是 https github com JoanZapata