一、下载PDF.js放在assets目录下
.打开修改viewer.js文件中的DEFAULT_URL的值设为空字符串‘’
二、简单粗暴直接上代码
activity_showpdf.xml
<ProgressBar
android:id="@+id/pb_pdf"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="8dip"
android:indeterminateOnly="false"
android:max="100"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<WebView
android:id="@+id/wv_pdf"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
ShowPDFActivity.java
//声明
private WebView webview;
private WebSettings webSettings;
private TextView tv_title;
private ProgressBar pb;
实现打开pdf
webview = findViewById(R.id.wv_pdf);
pb = findViewById(R.id.pb_pdf); pb.setMax(100);
tv_title = findViewById(R.id.tv_title);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webSettings = webview.getSettings();
webSettings.setAllowFileAccessFromFileURLs(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowFileAccess(true);
// 设置可以支持缩放
webSettings.setSupportZoom(true);
// 设置出现缩放工具
webSettings.setBuiltInZoomControls(true);
//设置可在大视野范围内上下左右拖动,并且可以任意比例缩放
// webSettings.setUseWideViewPort(true);
//设置默认加载的可视范围是大视野范围
// webSettings.setLoadWithOverviewMode(true);
//自适应屏幕
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setTextZoom(100);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
//设置WebChromeClient类
webview.setWebChromeClient(new WebChromeClient() {
//获取网站标题
@Override
public void onReceivedTitle(WebView view, String title) {
tv_title.setText(TITLE);
}
//获取加载进度
@Override
public void onProgressChanged(WebView view, int newProgress) {
pb.setProgress(newProgress);
if(newProgress==100){
pb.setVisibility(View.GONE);
}
super.onProgressChanged(view, newProgress);
}
});
String url = Environment.getExternalStorageDirectory().getPath() + "/"+ CommonConstants.CURR_PAKAGE + "/plan/"+
filename;
webview.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=file://"+url);
最后要在activity的onDestroy销毁Webview
protected void onDestroy() {
if (webview != null) {
webview.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
webview.clearHistory();
((ViewGroup) webview.getParent()).removeView(webview);
webview.destroy();
webview = null;
}
super.onDestroy();
}
重点webview.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file=file://"+url);
网上的例子都是webview.loadUrl("file:///android_asset/pdfjs/web/viewer.html?file="+url);
三、按上述方式成功显示PDF文件,但是不能缩放
修改viewer.html的头部,修改如下