目前我已知的有两种形式,都是通过第三方来实现的,现在贴出,以后可能会遇到相同需求,方便查询。
1.wdeo3601
github对应版本号:implementation 'com.wdeo3601:pdf-view:1.0.4'
使用步骤:
1.xml文件中进行布局:
<com.wdeo3601.pdfview.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2.代码中进行设置:filePathUrl为pdf线上路径
private PDFView pdfView;
pdfView = viewBinding.pdfView;
pdfView.setOffscreenPageLimit(2);
pdfView.isCanZoom(true);
pdfView.setMaxScale(10f);
pdfView.showPdfFromUrl(filePathUrl);
3.效果
因作者没有提供进度相关的回调,所以加载时候会白屏一段时间,体验差了一些。很奇怪的一点是有时他会不停的自己翻转,或者动它一下它自己就翻转。
2.pdf.js
1.需要将项目库down入Android项目的assets文件夹中,已经放入百度云,需要了自取:
链接:https://pan.baidu.com/s/1-pfb92SmSTN2u72T0Ogahg
提取码:memk
下载好后放入项目中对应位置:
2.使用:
xml中直接使用webview即可
代码中需要进行一些配置:
private WebView webview;
webview = findViewById(R.id.webview);
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webview.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=" + filePathUrl);
filePathUrl为pdf线上地址
3.效果:
这个自带有加载样式,通过上方按钮也可放大缩小,不喜欢了也可以对本地css样式进行修改,我目前使用的是第二种;