遇到一个问题,用webview显示一个网页,显示的字体总是很大。前端怎么调都不行,webview参数也多次调试,都加上了还是不行。最后试验出来,发现这个设置就能让网页显示正常:
mWebView.getSettings().setLoadWithOverviewMode(false);
如果设置成:
mWebView.getSettings().setLoadWithOverviewMode(true); 或者不设置,都不正常。
//支持javascript
mWebView.getSettings().setJavaScriptEnabled(true);
// 设置可以支持缩放
mWebView.getSettings().setSupportZoom(true);
// 设置出现缩放工具
mWebView.getSettings().setBuiltInZoomControls(true);
//扩大比例的缩放
mWebView.getSettings().setUseWideViewPort(true);
//自适应屏幕
mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
mWebView.getSettings().setLoadWithOverviewMode(false);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//该方法在Build.VERSION_CODES.LOLLIPOP以前有效,从Build.VERSION_CODES.LOLLIPOP起,建议使用shouldOverrideUrlLoading(WebView, WebResourceRequest)} instead
//返回false,意味着请求过程里,不管有多少次的跳转请求(即新的请求地址),均交给webView自己处理,这也是此方法的默认处理
//返回true,说明你自己想根据url,做新的跳转,比如在判断url符合条件的情况下,我想让webView加载http://ask.csdn.net/questions/178242
if (url.toString().contains("sina.cn")) {
view.loadUrl("http://ask.csdn.net/questions/178242");
return true;
}
return false;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
//返回false,意味着请求过程里,不管有多少次的跳转请求(即新的请求地址),均交给webView自己处理,这也是此方法的默认处理
//返回true,说明你自己想根据url,做新的跳转,比如在判断url符合条件的情况下,我想让webView加载http://ask.csdn.net/questions/178242
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (request.getUrl().toString().contains("sina.cn")) {
view.loadUrl("http://ask.csdn.net/questions/178242");
return true;
}
}
return false;
}
});
mWebView.loadUrl("http://m.zhugefang.com/mobileSingle/pay/index.html");