Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android WebView使用setWideViewPort,禁用双击缩放但保持捏缩放?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用此代码,它完全按照我的意愿工作.但是我必须在双击时实现另一个功能,并且想要禁用双击缩放(但保持缩放缩放功能).
webView.getSetTings().setLoadWithOverviewmode(true);
webView.getSetTings().setUseWideViewPort(true);
webView.getSetTings().setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
webView.getSetTings().setBuilTinZoomControls(true);
webView.getSetTings().setSupportZoom(true); 
webView.seTinitialScale(1);

试图手动计算比例,没有运气(这感觉很复杂).@H_450_5@Disable Double Tap Zoom/Unzoom on a webview

Android Webview – Webpage should fit the device screen

有没有办法使用setUseWideViewPort和Zoomcontrolls但只禁用或覆盖双击缩放?

@H_502_12@解决方法
最好的解决方案,只需从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,AttributeSet attrs,int defStylE) {
        super(context,attrs,defStylE);
        gestureDetector = new GestureDetector(context,int defStyle,Boolean privateBrowsing) {
        super(context,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;
        }
    }
}

大佬总结

以上是大佬教程为你收集整理的Android WebView使用setWideViewPort,禁用双击缩放但保持捏缩放?全部内容,希望文章能够帮你解决Android WebView使用setWideViewPort,禁用双击缩放但保持捏缩放?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。