2013-07-01 13 views
8

Ho creato una barra di azione trasparente ma i controlli di zoom e la parola "Google" sono dietro di esso. Non ho idea di come regolare la loro posizione. L'app Google Maps predefinita sui telefoni Android li ha sollevati sopra la barra delle azioni in basso. È possibile riposizionare i controlli dello zoom e la parola "Google"?Posizionamento di Google maps v2 comandi di zoom in Android

So che è possibile attivare/disattivare i comandi con:

map.getUiSettings().setZoomControlsEnabled(true); 

enter image description here

risposta

12

È possibile raggiungere questo obiettivo con il metodo GoogleMap.setPadding() (aggiunto nel mese di settembre 2013):

map.setPadding(leftPadding, topPadding, rightPadding, bottomPadding); 

Dalla documentazione API:

Questo metodo consente di definire una regione visibile sulla mappa, per segnalare alla mappa che alcune parti della mappa attorno ai bordi possono essere oscurate, impostando il riempimento su ciascuno dei quattro bordi della mappa. Le funzioni della mappa saranno adattate al padding. Ad esempio, i controlli di zoom, la bussola, le informazioni sul copyright e il logo di Google verranno spostati per adattarsi all'interno della regione definita, movimenti di macchina sarà rispetto al centro della regione del visibile, ecc

vedere anche il description of how padding works in GoogleMap.

1

Purtroppo non c'è alcun modo per spostare i controlli dello zoom forniti con Google Maps li si poteva disattivare e creare il proprio personalizzato controlli zoom e posizionali nella parte superiore della mappa.

+0

Questa domanda è obsoleta, guarda la risposta di Mark Doliners che è corretta. – Warpzit

+0

Bene considerando che questo è stato risposto waaaay nel 2013 ... js – yams

1

Penso che questo sarebbe utile per voi. Sto tentando di implementare un layout simile, la mia soluzione è stata quella di provare a nascondere i controlli su un intervallo temporizzato come 3 secondi sugli aggiornamenti della fotocamera.

Penso che questa sia la soluzione migliore senza dover implementare controlli personalizzati.

mapFragment.setOnCameraChangeListener(new OnCameraChangeListener() { 

      @Override 
      public void onCameraChange(CameraPosition position) { 
       mapFragment.getUiSettings().setZoomControlsEnabled(true); 
       Timer t = new Timer(); 
       TimerTask tt = new TimerTask() { 

        @Override 
        public void run() { 
         getActivity().runOnUiThread(new Runnable() { 

          @Override 
          public void run() { 
           mapFragment.getUiSettings().setZoomControlsEnabled(false); 

          } 
         }); 

        } 
       }; 

       t.schedule(tt, 3000); 


      } 

     }); 

Questa era principalmente una dimostrazione di concetto. Ma funziona.

+0

Quindi questo li nasconde? Sembra che tu possa creare una barra di azione trasparente con 4.4. Penso che ti permettano di spostarli con kitkat – ono

+0

invece di spostarli per mostrarli solo quando la mappa è stata interagita e nasconderli altrimenti. È stata una soluzione perché non ho ancora trovato un modo per spostarli. – wapples

Problemi correlati