2009-05-28 2 views
17

Existe-t-il un moyen de toujours afficher les commandes de zoom sur un MapView? J'ai ajouté les commandes de zoom en utilisantToujours afficher les commandes de zoom sur un MapView

map=(MapView)findViewById(R.id.map); 
map.setBuiltInZoomControls(true); 

mais les commandes de zoom se fanent dedans et dehors. Je veux qu'ils soient toujours visibles.

Répondre

21

résolu ce problème en mettant mes propres ZoomControls dans ma mise en page xml:

<ZoomControls android:id="@+id/zoomcontrols" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" /> 

puis la mise en place onClickListeners pour ensuite gérer le zoom:

zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols); 
    zoomControls.setOnZoomInClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mapController.zoomIn(); 
     } 
    }); 
    zoomControls.setOnZoomOutClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mapController.zoomOut(); 
     } 
    }); 
14

intrications La solution fonctionne, mais vous perdre la fonctionnalité intégrée où le bouton désactive lorsque vous avez fait un zoom avant ou arrière tout le chemin. Vous pouvez conserver cette fonctionnalité en utilisant ce qui suit à la place:

localMapView.getZoomButtonsController().setAutoDismissed(false); 

Cependant, cela ne vous permet pas de placer les commandes lequelR que vous voulez dans le panneau, et bien qu'il ne va pas, il ne montre pas le premier temps jusqu'à ce que l'utilisateur touche l'écran une fois. J'ai essayé d'appeler setVisible(true) sur le contrôleur, mais cela ne semble pas fonctionner pour une raison quelconque.

Questions connexes