【问题标题】:Fitting webpage contents inside a webview (Android)将网页内容放入 webview (Android)
【发布时间】:2012-01-29 17:54:35
【问题描述】:

简单的问题。

我正在尝试拉伸 web 视图的内容,以便可以看到其中的整个网页。即没有滚动。我浏览了文档,但除了缩放控件和 setinitialscale 之外找不到任何方法。

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

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

这是我的代码 sn-p

    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);

这似乎可以替代我正在尝试做的事情,但我无法让它放大到足够远。

【问题讨论】:

  • 你现在可以在 webview 中适应页面吗
  • 你有解决办法吗?

标签: android layout android-layout webview stretch


【解决方案1】:

因此人们可以将其用作将来的教程。

有很多方法可以处理 android 和适配页面的缩放。有时它可能非常喜怒无常,有些方法比其他方法效果更好。

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

WebView x;

x.setInitialScale(1);

这是可能的最大缩放。但对于某些网站来说,它只是看起来很丑陋。

这是我找到的第二个版本

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 迄今为止在本网站上找到的这些设置的最佳解释
  • 谢谢,x.getSettings().setLoadWithOverviewMode(true); x.getSettings().setUseWideViewPort(true);为我工作
  • 也适合我。谢谢@OVERTONE :)
  • 轰隆隆。很好的答案。正是我所追求的。非常感谢您不断努力为这个问题提供明确的解决方案!声誉++
【解决方案2】:

我已经尝试了上述所有方法,但在我发现之前没有任何效果:

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

删除 html 文件中的这一行或简单地更改 user-scalable=yes,一切都会好起来的。 我花了将近一天的时间才发现这条疯狂的路线。

【讨论】:

  • 我在哪里可以更改或添加这个?
  • 是html文件中的meta标签。您可以在标题部分打开该 html 文件并直接对其进行编辑。
  • 很棒的答案。救了我。 ;-*
  • 你能帮我解决这个问题吗? stackoverflow.com/questions/49098464/…
猜你喜欢
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
  • 2019-04-18
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
相关资源
最近更新 更多