android webview viewport,Android WebView使用setWideViewPort,禁用双击缩放但保持捏缩放?...

最好的解决方案,只需从MyWebView扩展您的WebView

public class HelpWebView extends WebView {

private GestureDetector gestureDetector;

private AtomicBoolean mPreventAction = new AtomicBoolean(false);

private AtomicLong mPreventActionTime = new AtomicLong(0);

public HelpWebView(Context context) {

super(context);

gestureDetector = new GestureDetector(context, new GestureListener());

}

public HelpWebView(Context context, AttributeSet attrs) {

super(context, attrs);

gestureDetector = new GestureDetector(context, new GestureListener());

}

public HelpWebView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

gestureDetector = new GestureDetector(context, new GestureListener());

}

public HelpWebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {

super(context, attrs, defStyle, privateBrowsing);

gestureDetector = new GestureDetector(context, new GestureListener());

}

@Override

public boolean onTouchEvent(MotionEvent event) {

int index = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;

int pointId = event.getPointerId(index);

// just use one(first) finger, prevent double tap with two and more fingers

if (pointId == 0){

gestureDetector.onTouchEvent(event);

if (mPreventAction.get()){

if (System.currentTimeMillis() - mPreventActionTime.get() > ViewConfiguration.getDoubleTapTimeout()){

mPreventAction.set(false);

} else {

return true;

}

}

return super.onTouchEvent(event);

} else {

return true;

}

}

private class GestureListener extends GestureDetector.SimpleOnGestureListener {

@Override

public boolean onDoubleTap(MotionEvent e) {

mPreventAction.set(true);

mPreventActionTime.set(System.currentTimeMillis());

return true;

}

@Override

public boolean onDoubleTapEvent(MotionEvent e) {

mPreventAction.set(true);

mPreventActionTime.set(System.currentTimeMillis());

return true;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值