1.展示pdf首先你要获取你的url
2.添加pdf依赖
//pdf
implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'
3.在布局中添加pdf的控件
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdfView"
android:layout_below="@id/tab"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"/>
4.在Activity中找到控件
@BindView(R.id.pdfView)
PDFView pdfView;
5.展示pdf需要先下载pdf (下载工具类和判断文件是否存在的工具类已在文件夹中)
将url放入,先进行判断,如果文件中下载过pdf则直接显示,如果文件中没有下载过,再进行下载,最后展示pdf
如果进去Activity就要展示PdfView,就调用loadPdf()方法(因为pdf展示需要下载,所以进入页面就要进行下载)
//加载pdf:
private void loadPdf(String url) {
String path = FileUtils.pdfPath(url);//得到pdf本地路径
if (FileUtils.fileIsExists(path)) { //文件存在直接显示
showPdf(path); //显示pdf
} else { //不存在进行下载
//下载
download(url, path);
}
}
//下载pdf:
private void download(String url, String path) { //得到url 和存储路径
DownloadUtil.download(url, path, new DownloadUtil.OnDownloadListener() {
@Override
public void onDownloadSuccess(final String path) {//下载成功 展示pdf
Log.d("MainActivity", "onDownloadSuccess: " + path);
showPdf(path);
}
@Override
public void onDownloading(int progress) { //下载进度
Log.d("MainActivity", "onDownloading: " + progress);
}
@Override
public void onDownloadFailed(String msg) { //下载失败
Log.d("MainActivity", "onDownloadFailed: " + msg);
}
});
}
//显示pdf:
private void showPdf(String path) {
pdfView.fromFile(new File(path)) //设置pdf文件地址
.defaultPage(0)
.enableSwipe(false)
.load();
}