Android 4.3或更低版本中的缩放支持无效

时间:2015-01-06 13:52:03

标签: android android-webview

我有一个网络视图作为其中一个活动的一部分,并试图启用放大,但它不适用于较低版本的android。

 WebSettings settings = webView.getSettings();
  settings.setUseWideViewPort(true);
  settings.setSupportZoom(true);
  settings.setBuiltInZoomControls(true);

此代码适用于Android 4.4或更高版本。可能会遗漏什么?

2 个答案:

答案 0 :(得分:0)

试试这段代码:

public class TweakedWebView extends WebView {

    private ZoomButtonsController zoomButtons;

    public TweakedWebView(Context context) {
        super(context);
        init();
    }

    public TweakedWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public TweakedWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        getSettings().setBuiltInZoomControls(true);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            getSettings().setDisplayZoomControls(false);
        } else {
            try {
                Method method = getClass()
                        .getMethod("getZoomButtonsController");
                zoomButtons = (ZoomButtonsController) method.invoke(this);
            } catch (Exception e) {
                // pass
            }
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        boolean result = super.onTouchEvent(ev);
        if (zoomButtons != null) {
            zoomButtons.setVisible(false);
            zoomButtons.getZoomControls().setVisibility(View.GONE);
        }
        return result;
    }

}

答案 1 :(得分:0)

内部覆盖方法onTouchEvent放置此

            settings.setBuiltInZoomControls(true);
            settings.setSupportZoom(true);