我的网页视图包含以下设置:
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);
瞧,用户可以使用捏缩放。
现在,我有两个地方可以缩放页面:
这意味着,当用户切换到适合屏幕模式时,我必须缩小webview。我花了一点时间才弄明白,因为只有zoomOut()
方法可以缩小"一点点",但幸运的是它返回一个布尔值来表示成功或失败,所以一个简单的:
while(webview.zoomOut()) {}
诀窍。网页已正确缩小并缩放。
然而,有一个非常令人沮丧的副作用:当改变到适合屏幕模式时,webview突然放大了一点。它用动画完成并持续约500ms。它是自动完成的,我没有任何代码可以做到这一点。所以效果是:页面缩小以立即适应屏幕并在500毫秒内稍微放大。
我已删除了我的zoomOut
代码并且没有使用缩放来放大我的测试,但在我更改javascript内的内容比例后,webview仍会放大一点。
删除此效果的唯一方法是setSupportZoom(false)
禁用缩放以缩放。
是否有人遇到类似问题,并知道如何禁用此自动放大功能?
谢谢
答案 0 :(得分:0)
s.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
试试这个!!