简单的问题。
我正在尝试展开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);
这似乎是我正在尝试做的事情的替代方案,但是我无法将其缩放得足够远。
答案 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,一切都会好的。 我差不多花了一天才发现这条疯狂的路线。