如何在Android for HTC中停止放大webview的网页

时间:2014-08-27 05:29:08

标签: android webview zoom htc-android

单击输入文本时,如何在Android中为HTC手机停止放大webview的网页。任何建议将不胜感激。

3 个答案:

答案 0 :(得分:0)

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;
    }
}

答案 1 :(得分:0)

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;
    }
}

}

答案 2 :(得分:0)

最后,我用HTC观察到的是它已经定制了Android操作系统,我们的webview设置从未在那里工作。虽然我已经定制了webview但没有用。我以其他方式解决了我的问题。

它只有已经设置的webview缩放中的FAR,CLOSE,MEDIUM设置。但我们可以在设置移动时更改它们。除此之外我们无法改变任何内容。