客户给了一个word文档,是一个应用协议的声明,要放到app中展示;
想到了先转换成html文件(word直接另存为html就可以),再用WebView加载显示;
将html文件放到assets目录下;然后调用代码
只用setLoadWithOverviewMode(true)和setUseWideViewPort(true)的时候,宽度没有超出屏幕宽度,但是显示出来的字体大小不对;
设置了setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN)的时候,字体大小倒是合适了,但是宽度会超出屏幕宽度
最后网上找了好久,终于发现了问题,因为之前设置的webview控件宽高都是match_parent;
改为wrap_content,然后设置setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN)即可正常显示;
WebView webView = (WebView) findViewById(R.id.web_protocol);
WebSettings settings = webView.getSettings();
// 自适应屏幕
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
// settings.setLoadWithOverviewMode(true);
//扩大比例的缩放
// settings.setUseWideViewPort(true);
//设置支持js
settings.setJavaScriptEnabled(true);
// 设置可以支持缩放
settings.setSupportZoom(true);
// 设置出现缩放工具
// settings.setBuiltInZoomControls(true);
//根据屏幕密度设置
// DisplayMetrics dm = new DisplayMetrics();
// getWindowManager().getDefaultDisplay().getMetrics(dm);
// if (dm.densityDpi > 240 ) {
// settings.setDefaultFontSize(70); //可以取1-72之间的任意值,默认16
// }
// settings.setTextSize(WebSettings.TextSize.LARGEST);
webView.setBackgroundColor(Color.TRANSPARENT); // WebView 背景透明效果
webView.loadUrl("file:///android_asset/protocol.html");