如何在Android的网页浏览中禁用自动缩放比例更改?

时间:2017-09-28 05:02:21

标签: android webview

我的网页视图包含以下设置:

    WebSettings s = getSettings();
    s.setAllowFileAccess(true);
    s.setSupportZoom(false);
    s.setBuiltInZoomControls(false);
    s.setDisplayZoomControls(false);
    s.setDomStorageEnabled(true);
    s.setJavaScriptCanOpenWindowsAutomatically(true);
    s.setUseWideViewPort(true);
    s.setLoadWithOverviewMode(true);

在我的应用程序中,我允许用户在显示的页面的两种模式之间切换:fit screen&放大。 为此,我使用javascript更改页面的比例。 这一切都很有效,但是出现了新的要求:始终允许用户使用捏缩放,永远不要使用他们查看页面的模式。

所以我更改了这两个设置:

    s.setSupportZoom(true);
    s.setBuiltInZoomControls(true);

瞧,用户可以使用捏缩放。

现在,我有两个地方可以缩放页面:

  • javascript我更改内容比例
  • java,我允许用户放大webview

这意味着,当用户切换到适合屏幕模式时,我必须缩小webview。我花了一点时间才弄明白,因为只有zoomOut()方法可以缩小"一点点",但幸运的是它返回一个布尔值来表示成功或失败,所以一个简单的:

while(webview.zoomOut()) {}

诀窍。网页已正确缩小并缩放。

然而,有一个非常令人沮丧的副作用:当改变到适合屏幕模式时,webview突然放大了一点。它用动画完成并持续约500ms。它是自动完成的,我没有任何代码可以做到这一点。

所以效果是:页面缩小以立即适应屏幕并在500毫秒内稍微放大。

我已删除了我的zoomOut代码并且没有使用缩放来放大我的测试,但在我更改javascript内的内容比例后,webview仍会放大一点。

删除此效果的唯一方法是setSupportZoom(false)禁用缩放以缩放。

是否有人遇到类似问题,并知道如何禁用此自动放大功能?

谢谢

1 个答案:

答案 0 :(得分:0)

s.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);

试试这个!!