在webview中安装网页内容(Android)

时间:2012-01-29 17:54:35

标签: android layout android-layout webview stretch

简单的问题。

我正在尝试展开webview的内容,以便可以看到整个网页。即没有滚动。我查看了文档,但无法找到缩放控件和setinitialscale之外的任何方法。

在这种情况下,setinitialscale的问题在于它对不同站点的工作方式不同。

实施例: 1:维基百科将按预期加载足够远的缩放。 2:但Google只会显示页面的中心。

下面是我的代码片段

    test1 = (WebView) findViewById(R.id.webview_test_1);
    test2 = (WebView) findViewById(R.id.webview_test_2);
    test3 = (WebView) findViewById(R.id.webview_test_3);

    test1.getSettings().setJavaScriptEnabled(true);
    test2.getSettings().setJavaScriptEnabled(true);
    test3.getSettings().setJavaScriptEnabled(true);

    test1.setInitialScale(12);
    test2.setInitialScale(12);
    test3.setInitialScale(12);

    test1.loadUrl("http://developer.android.com/resources/tutorials/views/hello-tablelayout.html");
    test2.loadUrl("http://www.wikipedia.org/");
    test3.loadUrl("http://www.google.com");

test1.getSettings().setDefaultZoom(ZoomDensity.FAR);

这似乎是我正在尝试做的事情的替代方案,但是我无法将其缩放得足够远。

2 个答案:

答案 0 :(得分:103)

所以人们可以在将来使用它作为教程。

有许多方法可以处理android和拟合页面中的缩放。它有时候很有气质,有些方法比其他方法更好。

对于大多数人来说,只需使用它:

WebView x;

x.setInitialScale(1);

这是可能的变焦。但是对于一些网站而言,它看起来只是纯粹的UGLY。

这是我找到的第二个版本

test1.getSettings().setDefaultZoom(ZoomDensity.FAR);

这是一个不错的全能,似乎只是缩小了很多,但仍然不是我想要的。

现在是我拥有的最终解决方案。

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

基本上,在这样的另一个问题中回答了这些问题。

 setLoadWithOverviewMode(true) 

加载WebView完全缩小

setUseWideViewPort(true)

使Webview具有普通视口(例如普通桌面浏览器),而当为false时,webview将具有约束于其自身尺寸的视口(因此,如果webview为50px * 50px,则视口将具有相同的大小)

答案 1 :(得分:10)

我已经尝试了上述所有方法,但在我的情况下,在我发现之前没有任何工作:

   <meta name="viewport" content="user-scalable=no"/>

删除html文件中的这一行,或者只是更改user-scalable = yes,一切都会好的。 我差不多花了一天才发现这条疯狂的路线。