android中WebView加載網頁居中顯示
方式一:
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
本文由用戶 ngww 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!