【发布时间】:2011-07-04 19:04:08
【问题描述】:
WebSettings中有一些与缩放相关的方法:
- WebSettings.setSupportZoom
- WebSettings.setBuiltInZoomControls
我注意到它们在某些设备上的工作方式不同。 例如,在我的 Galaxy S 上,默认启用双指缩放,但在 LG P500 上它被禁用(现在我不知道如何启用仅双指缩放,但隐藏缩放按钮)。
在 P500 上,当我致电 setBuiltInZoomControls(true) 时,这两种变体都可以正常工作(多点触控和按钮)。
如何在 LG P500 等设备上启用多点触控缩放和禁用缩放按钮? (另外,我知道 HTC 设备上也存在同样的问题)
更新:这里几乎是解决方案的完整代码
if (ev.getAction() == MotionEvent.ACTION_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_1_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_2_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_3_DOWN) {
if (multiTouchZoom && !buttonsZoom) {
if (getPointerCount(ev) > 1) {
getSettings().setBuiltInZoomControls(true);
getSettings().setSupportZoom(true);
} else {
getSettings().setBuiltInZoomControls(false);
getSettings().setSupportZoom(false);
}
}
}
if (!multiTouchZoom && buttonsZoom) {
if (getPointerCount(ev) > 1) {
return true;
}
}
此代码在我的 WebView 的 onTouchEvent 重写方法中。
【问题讨论】:
-
我也遇到了同样的问题.. multiTouchZoom 和buttonsZoom 变量是什么?
-
@Luizje 我知道这是旧的,但万一其他人发现它:将 getPointerCount(ev) 更改为 ev.getPointerCount() 它将起作用!
-
我不确定是否有人需要这个,但看看我的“hack around”。它可以回溯到 Android 1.6
-
@Evgeny 什么是 multiTouchZoom 和 buttonsZoom 变量?您是如何获得缩放按钮和多点触控缩放的事件的?如果你不介意,你能把完整的代码贴在这里吗?
标签: android android-webview zooming multi-touch