android中WebView加載網頁居中顯示

ngww 9年前發布 | 90K 次閱讀 Android開發 移動開發 Android

方式一:


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