我已经创建了一个WebView来显示带有标记的Google Map等。这非常有效并且在我的设备上(HTC Sensation)我可以放大/缩小地图而没有任何问题但是在其他设备上它有时会发生缩放是不可能的。我已经尝试过setSupportZoom(true)和setBuiltInZoomControls(true),但这不起作用。它不是缩放地图,而是缩放内容(如缩放图片)。
所以我的任务是如何在所有设备上启用缩放地图?
答案 0 :(得分:1)
如果你想控制zoomin - 缩小然后不要使用默认的zoomin控件。在您的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);
}
});
希望这张地图可以帮助你