AndroidPdfHelper
Introduction: 一个基于 Android PdfRenderer 实现的 PDF 预览组件,支持对 PDF 文件的分页切换、放大缩小、拖动定位等操作。A PDF preview component based on Android pdfRenderer, which supports paging switching, zooming in and out, dragging and positioning of PDF files.
Tags:
一个基于 Android PdfRenderer 实现的 PDF 预览组件,支持对 PDF 文件的分页切换、放大缩小、拖动定位等操作。
A PDF preview component based on Android pdfRenderer, which supports paging switching, zooming in and out, dragging and positioning of PDF files.
特性
- 基于 PdfRenderer 实现,不同于其它第三方库,占用包体小
- 支持 PDF 文件的上下页切换
- 支持 PDF 单页的放大缩小查看
- 支持设置文件预览清晰度
- 支持自定义控制栏样式
- 支持 AndroidX
效果预览
如何使用
在项目根目录的 build.gradle 添加:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
在项目的 build.gradle 添加如下依赖:
implementation 'com.github.GitHubZJY:AndroidPdfHelper:v1.0.0'
1.以 View 的方式调用
<com.zjy.pdfview.PdfView
android:id="@+id/pdf_view"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</com.zjy.pdfview.PdfView>
在代码中初始化 PdfView
PdfView pdfView = findViewById(R.id.pdf_view);
预览在线 PDF 文件:
pdfView.loadPdf("http://.....xx.pdf");
预览 asset 文件:
pdfView.loadPdf("file:///android_asset/test.pdf");
自定义预览操作条:
首先继承于 AbsControllerBar
, 重写 getView
方法返回自定义的视图
public class CustomControllerBar extends AbsControllerBar {
public View getView() {
//...
}
}
通过 setPDFController
设置自定义的 Controller 即可
CustomControllerBar controllerBar = new CustomControllerBar(this);
pdfView.setPDFController(controllerBar);
2.以页面方式调起
以页面的形式,自带了默认的顶部标题栏,适配 Android 5.0 以下,会自动下载并调用浏览器打开 预览在线 PDF 文件:
PdfPreviewUtils.previewPdf(context, "http://.....xx.pdf");
预览 asset 文件:
PdfPreviewUtils.previewPdf(context, "file:///android_asset/test.pdf");
3.设置预览清晰度.
<com.zjy.pdfview.PdfView
android:id="@+id/pdf_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:quality="medium">
</com.zjy.pdfview.PdfView>
通过设置 quality
属性即可,目前一共有低、中、高三种清晰度,如下:
高清晰度:high
中等清晰度:medium
低清晰度:low
其他
本库基于 PdfRenderer 实现,目前支持在线或本地 pdf 文件预览,另外还支持侧边导航滑块,可定位到任意一页,双指拖拽或双击可对单页进行放大缩小控制。 由于 PdfRenderer 提供的支持有限,主要还是在于预览在线和本地 PDF 文件,但优点在于其体积小,后续会继续更新,提供更多 PDF 预览方面的功能,欢迎 issue 和 star~