1

我创建了一个 WebView 来显示带有标记等的谷歌地图。这很好用,在我的设备(HTC Sensation)上我可以毫无问题地放大/缩小地图,但在其他设备上有时会发生缩放是不可能的. 我已经尝试过 setSupportZoom(true) 和 setBuiltInZoomControls(true) 但这不起作用。而不是缩放地图,它只是缩放内容(如放大图片)。

所以我的问题是如何在所有设备上启用缩放地图?

4

1 回答 1

1

如果你想控制放大 - 缩小然后不要使用默认的放大控制。在您的 xml 文件集中..

<ZoomControls android:id="@+id/zoomctrl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top|center_horizontal"
/>

现在。在您的活动中声明并初始化 ZoomControls zc;

class CurOverlay extends Overlay {
    private GeoPoint pointToDraw;

    public void setPointToDraw(GeoPoint point) {
        pointToDraw = point;
    }

    public OnTouchListener mMapTouch = new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.v("TAG", "inside onTouch");
            zoomlvl = curmapView.getZoomLevel();
            if (zoomlvl == 19)
                zc.setIsZoomInEnabled(false);
            else if (zoomlvl == 1)
                zc.setIsZoomOutEnabled(false);
            else {
                zc.setIsZoomInEnabled(true);
                zc.setIsZoomOutEnabled(true);
            }
            return false;
        }
    };
            ...
            ....

}

对于放大和缩小的点击事件是..

zc.setOnZoomInClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    zc.setIsZoomOutEnabled(true);
                    curmapController.zoomIn();
                    if (curmapView.getZoomLevel() == 19)
                        zc.setIsZoomInEnabled(false);

                }
            });
            zc.setOnZoomOutClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    zc.setIsZoomInEnabled(true);
                    curmapController.zoomOut();
                    if (curmapView.getZoomLevel() == 1)
                        zc.setIsZoomOutEnabled(false);
                }
            });

希望这张地图对你有帮助

于 2012-11-22T12:46:54.093 回答