3

私のAndroidアプリには、MapActivityがあり、2本の指(ピンチ)でマップをズームするとズームしますが、指を離すとさらにズームします。つまり、ロンドンが地図の中央にある場合、ズームしているときにロンドンは画面の端に到達します。指を離すと、画面から消えてさらにズームします。iOSマップアプリのようにしたい(これ以上ズームしない)。これどうやってするの?

次のコードを試しましたが、機能しませんでした。

class MapOvelay extends Overlay {
   boolean moveTouch;
   int i;

    @Override
    public boolean onTouchEvent(MotionEvent event, MapView mapView) {
       switch (event.getAction()) {     
         case MotionEvent.ACTION_POINTER_UP://when two fingers are lifted
           mapController.setZoom(i);
           i=0;
           break;

         case MotionEvent.ACTION_MOVE://when two fingers are moving on map
           i = mapView.getZoomLevel();
           moveTouch = true;
           break;
   .... 
  }
 }
}
4

3 に答える 3

0

ZoomToSpan機能を試しましたか?

mMapController.zoomToSpan(maxLatitude - minLatitude,maxLongitude - minLongitude);

また、このようなもので最低ズームを制限することができます

if (LOWEST_ZOOM_LEVEL < mMap.getZoomLevel() ) {
    mMapController.setZoom(LOWEST_ZOOM_LEVEL);
}
于 2012-06-18T06:42:12.823 に答える
0

MapView で #getMaxZoomLevel() を呼び出して、使用可能な最大ズーム レベルを取得できます。これは、公式の Google マップ アプリケーションで何が起こっても、取得できる最も近いズームです。 mapView.getController().animateTo(geoPoint); mapView.getController().setZoom(15); mapView.invalidate();

于 2012-06-18T07:11:38.503 に答える
0

これを試して

    mapview.getController().animateTo(startGP);
    mapview.getController().setZoom(13);        
    mapview.setBuiltInZoomControls(true);
    mapview.invalidate();
于 2012-06-18T07:16:44.550 に答える