2011-11-22 102 views
3

我的朋友使用javascript做了一个应用程序,并将其上传到他的网站。Android Webview,缩放内容以适合屏幕

现在我试图把它包装到android的webview中,并且在某些方面工作正常。

的页面是小480x320

但无论我选择在Android什么屏幕尺寸,还有在对网页视图底部的空白。我尝试了很多方法来缩放,但没有任何工作。

我在这一刻的代码是这样

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

你可以 – Pawan

回答

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

scale是float,你可以计算出 - 我想你的情况你想要的东西像下面这样:browser.getHeight()/480dp。 在您的网页加载完成后加载此网址。

+0

非常有用,谢谢 –

+0

什么情况下wb在这里 –

+0

wb将是您的webView实例 – FunkTheMonk

3

你可以尝试添加:

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

,看看它的工作?

+0

Didnt粘贴您的XML文件,在这里任何diffrence可言。 – NikolajSvendsen

13

我需要扩展到适合的宽度和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;"); 
} 
+0

适用于宽度,但如何根据比例缩放内容以适应宽度或高度? –