我创建了一个 WebView 来显示带有标记等的谷歌地图。这很好用,在我的设备(HTC Sensation)上我可以毫无问题地放大/缩小地图,但在其他设备上有时会发生缩放是不可能的. 我已经尝试过 setSupportZoom(true) 和 setBuiltInZoomControls(true) 但这不起作用。而不是缩放地图,它只是缩放内容(如放大图片)。
所以我的问题是如何在所有设备上启用缩放地图?
我创建了一个 WebView 来显示带有标记等的谷歌地图。这很好用,在我的设备(HTC Sensation)上我可以毫无问题地放大/缩小地图,但在其他设备上有时会发生缩放是不可能的. 我已经尝试过 setSupportZoom(true) 和 setBuiltInZoomControls(true) 但这不起作用。而不是缩放地图,它只是缩放内容(如放大图片)。
所以我的问题是如何在所有设备上启用缩放地图?
如果你想控制放大 - 缩小然后不要使用默认的放大控制。在您的 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);
}
});
希望这张地图对你有帮助