2010-10-27 6 views
13

Devo posizionare i controlli zoom integrati di MapView in posizione diversa dalla posizione predefinita. Mentre è facile da fare usando il metodo getZoomControls(), questo metodo è deprecato nelle versioni recenti dell'API.Come riposizionare i controlli di zoom integrati in MapView?

Qualcuno ha idea di come fare questo senza chiamando getZoomControls()?

+0

@Keyser no le risposte del collegamento non aiutano. Infatti 'getZoomControls' è * deprecato *, quindi questa domanda è molto valida. – taxeeta

risposta

10

Ho una risposta a questo. Sono riuscito a riposizionarlo con questo codice nell'angolo in basso a sinistra anziché nel mezzo

FrameLayout.LayoutParams zoomParams = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
ZoomControls controls = (ZoomControls) getZoomButtonsController().getZoomControls(); 
controls.setGravity(Gravity.LEFT); 
controls.setLayoutParams(zoomParams); 
0

Questa cosa non funziona se non si eseguono correttamente le chiamate in sequenza. Questo ha funzionato per me.

map.setBuiltInZoomControls(true); 
    FrameLayout.LayoutParams zoomParams = new FrameLayout.LayoutParams(
      LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
    ZoomControls controlls = (ZoomControls) map.getZoomButtonsController().getZoomControls(); 
    controlls.setGravity(Gravity.TOP); 
    controlls.setLayoutParams(zoomParams); 
    map.displayZoomControls(true); 
    map.getController().setZoom(12); 

Upvote per @ludwigm, l'unica risposta che ha funzionato per me. Grazie.