【问题标题】:Zooming a WebView缩放 Web 视图
【发布时间】:2018-04-24 16:49:09
【问题描述】:

我不想改变 webView 的比例。这意味着,我知道如何启用捏缩放和类似的东西,只有页面的可见部分被改变(“放大”),就像

webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);

我也不想更改字体大小,尽可能使用getSettings().setTextZoom(zoom)

我想要实现的是尽可能在计算机的浏览器中实现相同的缩放,例如火狐。例如,您可以在此处使用 CTRL + + 进行缩放。但它不会改变比例,也不会只改变字体大小。它缩放所有内容,同时重新排列页面内容以适应缩放浏览器窗口中可用的新空间。 android webView 可以实现类似的功能吗?


几张图片展示我想要的:

默认视图:

缩放视图:

字体放大视图:

我想要什么:

【问题讨论】:

    标签: java android webview android-webview zooming


    【解决方案1】:

    我找到了两种可能的解决方案:

    1。 JS 缩放

    该选项加载一个 JS sn-p 到 webView 的当前站点并更新当前 body 的 style 属性。 Javascript sn-p 看起来像这样:

    function Zoom(value)
    {
        document.body.style.zoom = value;
    }
    

    我使用webView 的loadUrl 方法来加载这个sn-p。 这种方法的缺点是每次更新页面都必须加载sn -p。我通过在调用 webView 的 onPageFinished 时更新缩放来做到这一点。这样做的缺点是不能直接应用缩放,而只能在页面加载完成时应用。

    2。 DPI 变化

    这是一个相当老套的解决方案。它模拟一个新的显示尺寸,导致一切(以及 webView 的内容)调整大小。通过在linux子系统中执行以下命令来完成:

    wm density [value]
    

    这里的值是新的屏幕密度。它必须以 root 权限执行,这也是该解决方案的主要缺点。另一个缺点是它很慢(更新 DPI 之前大约需要一秒钟)。

    【讨论】:

      猜你喜欢
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2020-05-01
      相关资源
      最近更新 更多