缩放控件不适用于地图

时间:2012-10-29 08:52:03

标签: android zooming webviewclient

我在我的应用程序中使用webview,我将动态获取该webview的数据,我正在对该视图进行放大控制。 当我收到此网址http://content.vaayoo.com/AppsPlatForm/DealsaheadWeb/m_facebooks.aspx?Token=moc.liamg@liahs时,会出现放大控件。 但当我得到以下网址 https://maps.google.com/?saddr=12.9302,77.5831&daddr=12.928464,77.584258,缩放控件未显示。什么令人兴奋的问题?任何形式的帮助都非常感谢.. 下面是我的代码..

 protected void applyStyles() {

    // applying the zooming property to webview.
    final FrameLayout.LayoutParams ZOOM_PARAMS = new FrameLayout.LayoutParams(
            ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.TOP);

    View zoom = ((WebView) view).getZoomControls();
    FrameLayout ContentView = (FrameLayout) ((Activity) context)
            .getWindow().getDecorView().findViewById(android.R.id.content);
    ContentView.addView(zoom, ZOOM_PARAMS);
    zoom.setVisibility(View.VISIBLE);
}

以下是我正在为webview进行所有设置的代码..

if (data != null && webview != null) {
        String webData = data.toString();
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
        webview.getSettings().setUseWideViewPort(false);
        //webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webview.getSettings().setBuiltInZoomControls(true);
        webview.getSettings().setSupportZoom(true);


        webview.requestFocus(View.FOCUS_DOWN);
        webview.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {

                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:


                    case MotionEvent.ACTION_UP:
                        if (!v.hasFocus()) {
                            v.requestFocus();
                        }

                        break;
                }
                return false;
            }
        });
        System.out.println("webdata" +  webData);
        if (webData.startsWith("http")) {
            webview.loadUrl(webData);



        } else {
            webview.loadData(webData, "text/html", "utf-8");
        }           
    }

提前致谢

2 个答案:

答案 0 :(得分:2)

如果你有webview,那么你必须为这样的webview启用这些缩放属性 -

webview.getSettings().setSupportZoom(true);
webview.getSettings().setBuiltInZoomControls(true);

此后会显示默认的缩放功能,希望此建议对您有所帮助。 感谢

答案 1 :(得分:1)

尝试将setJavaScriptEnabled设置为true。你也可以通过

来实现它
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

同时检查WebView的以下属性是否存在

webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);