android中WebView加载网页居中显示
ngww
10年前
方式一:
WebSettings mWebSettings = webView.getSettings(); mWebSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
LayoutAlgorithm 是一个枚举用来控制页面的布局,其有三个类型:
1.NARROW_COLUMNS:可能的话使所有列的宽度不超过屏幕宽度
2.NORMAL:正常显示不做任何渲染
3.SINGLE_COLUMN:把所有内容放大webview等宽的一列中
用SINGLE_COLUMN类型可以设置页面居中显示,页面可以放大缩小,但这种方法有缺陷,有时候会让你的页面布局扭曲(不推荐使用)。
方式二:
//设置载入页面自适应手机屏幕,居中显示 WebSettings mWebSettings = webView.getSettings(); mWebSettings.setUseWideViewPort(true); mWebSettings.setLoadWithOverviewMode(true);
setUseWideViewPort是设置webview推荐使用的窗口,设置为true。
setLoadWithOverviewMode是设置webview加载的页面的模式,也设置为true。
这方法可以让你的页面适应手机屏幕的分辨率,完整的显示在屏幕上,可以放大缩小(推荐使用)。
WebView缩放问题:
1、webview支持页面缩放
//缩放开关
webView.getSettings().setSupportZoom(true);
设置此属性,仅支持双击缩放,不支持触摸缩放(android4.0)
// 设置是否可缩放
webView.getSettings().setBuiltInZoomControls(true);
如果设置了此属性,那么webView.getSettings().setSupportZoom(true);也默认设置为true
2、无限缩放
无限缩放,就需要使用大视图模式,如下:
webView.getSettings().setUseWideViewPort(true);设置此属性,可任意比例缩放。
注:1、初始缩放值可这样设置:webView.setInitialScale(initalValue);
2、缩放后,要使内容适配屏幕,不超出屏幕外显示,实现换行。这方面效果应该由html控制。
如<p style="word-break:break-all">test</p>实现自动换行
public class ResultActivity extends TitleActivity{ private WebView mWebView; private WebSettings mWebSettings; /* (non-Javadoc) * @see app.ui.TitleActivity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setUpViews(); } private void setUpViews() { setContentView(R.layout.activity_result); showBackwardView(R.string.button_backward, true); mWebView = (WebView)findViewById(R.id.webview); mWebSettings = mWebView.getSettings(); mWebSettings.setJavaScriptEnabled(true); //允许加载javascript //mWebSettings.setSupportZoom(true); //允许缩放 //mWebSettings.setBuiltInZoomControls(true); //mWebSettings.setUseWideViewPort(true); //任意比例缩放 mWebSettings.setUseWideViewPort(true); //设置加载进来的页面自适应手机屏幕(可缩放) mWebSettings.setLoadWithOverviewMode(true); mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } }); } }
来自:http://blog.csdn.net/gao_chun/article/details/37698629