android webview怎么禁止缩放
发布网友
发布时间:2022-05-02 08:59
我来回答
共1个回答
热心网友
时间:2023-10-14 21:44
要支持缩放,肯定要先支持JavaScript,加如下代码:
//支持JS
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);123123
重点来了,要想支持缩放,要加如下代码支持
//支持屏幕缩放
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
我们怎样去掉它呢,在Android3.0之后实现非常简单,加一句代码就可以了,如下代码:
//不显示webview缩放按钮
settings.setDisplayZoomControls(false);
所以说,我们没有必要兼容2.x了,就像iOS开发只兼容到IOS7版本就OK了,但是有的同学又说,我有强迫症,我就想兼容到2.x版本,其实解决方案网上都有了,这里用到了Java反射的知识,通过反射来获取私有的属性控件mZoomButtonsController,然后就其setVisibility(View.GONE)隐藏就可以了,下面贴出代码实现:
public void setZoomControlGone(View view){
Class classType;
Field field;
try {
classType = WebView.class;
field = classType.getDeclaredField("mZoomButtonsController");
field.setAccessible(true);
ZoomButtonsController mZoomButtonsController = new ZoomButtonsController(view);
mZoomButtonsController.getZoomControls().setVisibility(View.GONE);
try {
field.set(view, mZoomButtonsController);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
}