我在HelloMapView Tutorial和许多StackOverflow资源之后使用Pins实现了MapActivity
。
出于我的应用的目的,我想限制缩放级别的最小值和最大值。实际上我想避免在我的MapView上使用android:clickable="true"
。
我找不到如何做到这一点。
onZoomChanged()
,而我没有看到?<uses-sdk
android:maxSdkVersion="16"
android:minSdkVersion="7"
android:targetSdkVersion="15" />
// Here is my MapView
mMapView = (MapView) findViewById(R.id.game_map);
mMapView.setBuiltInZoomControls(false);
mMapView.setSatellite(true);
mMapController = mMapView.getController();
mMapController.setZoom(CONST_MAP_ZOOM);
mMapController.setCenter(new GeoPoint(48856700, 2351000));
mMapController.animateTo(new GeoPoint(48856700, 2351000));
但是当我用手指时,我可以缩小直到看到整个星球。
我希望限制缩放级别。
答案 0 :(得分:1)
MapView确实有onSizeChanged
参见https://developers.google.com/maps/documentation/android/reference/com/google/android/maps/MapView#onSizeChanged(int,int,int,int)
也许您可以听取它然后调用getZoomLevel()并查看它是否在您可接受的范围内并从那里进行更改。
或者更好的是,您可以覆盖onDraw并始终在那里进行检查。 Set minimum zoom level for MapView
答案 1 :(得分:0)
我找到了出路。
我在MapView上禁用了多次触摸:
<com.google.android.maps.MapView
android:id="@+id/game_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:apiKey="@string/google_maps_api_key"
android:clickable="true" />
然后我隐藏缩放控件:
mMapView = (MapView) findViewById(R.id.game_map);
mMapView.setBuiltInZoomControls(false);
然后我实现了自己的缩放控件。