Android Webview,缩放内容以适应屏幕

时间:2011-11-22 12:40:36

标签: java android webview

我的朋友使用javascript创建了一个应用程序,并将其上传到他的网站。

现在我正在尝试将其包装到android中的webview中,并且在某些方面工作正常。

该页面为480x320

但无论我在Android上选择什么屏幕,webview底部都有一个空白区域。我已经尝试了很多方法来缩放,但没有任何效果。

此刻我的代码就是这个

    final WebView browser = (WebView)findViewById(R.id.webview);   
    browser.getSettings().setJavaScriptEnabled(true);
    browser.loadUrl("http://page.xx");  

3 个答案:

答案 0 :(得分:14)

我需要按比例缩放以适应宽度,而FunkTheMonk的这种变化对我来说效果很好:

@Override
public void onPageFinished(android.webkit.WebView view, String url)
{
    super.onPageFinished(view, url);

    WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);

    DisplayMetrics metrics = new DisplayMetrics();
    manager.getDefaultDisplay().getMetrics(metrics);

    metrics.widthPixels /= metrics.density;

    loadUrl("javascript:var scale = " + metrics.widthPixels + " / document.body.scrollWidth; document.body.style.zoom = scale;");
}

答案 1 :(得分:10)

wb.loadUrl("javascript:document.body.style.zoom = "+String.valueOf(scale)+";");

scale是一个浮点数,你可以计算 - 我认为在你的情况下你需要类似下面这样的东西:browser.getHeight() / 480dp。 在网页加载完成后加载此网址。

答案 2 :(得分:3)

您可以尝试添加:

browser.getSettings().setBuiltInZoomControls(true);
browser.setInitialScale(1);
browser.setPadding(0, 0, 0, 0);

看看它是否有效?