使Webview内容适合屏幕

时间:2016-03-13 07:25:42

标签: android webview zoom

我有一个从本地资源文件夹加载网站的webview:

    webView = (WebView) findViewById(R.id.webView);

    //webView.setInitialScale(1);
    //webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
    //webView.getSettings().setLoadWithOverviewMode(true);
    //webView.getSettings().setUseWideViewPort(true);

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setDomStorageEnabled(true);

    webView.setWebViewClient(new WebViewClient() {

        public void onPageFinished(WebView view, String url) {
            webView.setVisibility(View.VISIBLE);
        }
    });

    if ((Locale.getDefault().getLanguage()).contains("ar"))
        webView.loadUrl("file:///android_asset/Index-ar.html");
    else
        webView.loadUrl("file:///android_asset/Index-en.html");

默认情况下,网页会被放大,用户必须滚动,所有我想要的是将页面宽度调整为webview宽度(全屏)。

评论向您展示了我的尝试:

setInitialScale(1)隐藏了该页面的所有内容!

setDefaultZoom(WebSettings.ZoomDensity.FAR)一无所获。

setLoadWithOverviewMode(true)setUseWideViewPort(true)放大了很多。

有什么建议吗?

3 个答案:

答案 0 :(得分:5)

它有点晚了,但它可以帮助一些需要它的人。

在网页的head标记中添加以下内容:

<meta name="viewport" content='width=device-width, initial-scale=1.0,text/html,charset=utf-8' >

然后在活动中添加:

WebView webView = (WebView) findViewById(R.id.webView);

webView.setInitialScale(1);

webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);

如果您想支持缩放按钮,可以添加 -

webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setSupportZoom(true);

答案 1 :(得分:2)

请你试试这个:

web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setSupportZoom(true); 
web.getSettings().setUseWideViewPort(true);
web.getSettings().setLoadWithOverviewMode(true);

答案 2 :(得分:1)

您是否尝试过xml?将布局宽度和高度设置为fill_parent。

<WebView  
      android:id="@+id/webView"
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/>