我不想改变webView的规模。这意味着,我知道如何启用捏缩放和类似的东西,只有页面的可见部分被改变("放大"),如同
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
我也不想使用getSettings().setTextZoom(zoom)
更改fontSize。
我想要实现的是在计算机的浏览器中尽可能相同的缩放,例如Firefox浏览器。在这里,您可以使用 CTRL + + 进行缩放。但它并没有改变比例,也没有改变它的字体大小。它可以缩放所有内容,同时重新排列页面内容以适应缩放浏览器窗口中可用的新空间。有没有可能与android webView?
一些图片显示我想要的内容:
答案 0 :(得分:0)
我找到了两种可能的解决方案:
此选项将JS片段加载到webView的当前站点并更新当前正文的样式属性。 Javascript代码段如下:
function Zoom(value)
{
document.body.style.zoom = value;
}
我使用webView的loadUrl
方法加载此代码段。
此方法的缺点是每次更新页面时都必须加载代码段。我通过在调用webView的onPageFinished
时更新缩放来完成此操作。这样做的缺点是缩放不是直接应用,而是仅在页面加载完毕后才会应用。
这是一个相当hacky的解决方案。它模拟新的显示大小,导致所有内容(以及因此webView的内容)调整大小。它是通过在linux子系统中执行以下命令来完成的:
wm density [value]
其中值是新的屏幕密度。它必须以root权限执行,这也是此解决方案的主要缺点。另一个缺点是它非常慢(在更新DPI之前需要大约一秒钟)。