2013-07-01 12 views
8

Ich habe eine transparente Aktionsleiste erstellt, aber die Zoomsteuerelemente und das Wort "Google" stehen dahinter. Ich habe keine Ahnung, wie ich ihren Standort einstellen soll. Die standardmäßige Google Map App auf Android-Telefonen hat sie über der unteren Aktionsleiste angezeigt. Ist es möglich, die Zoomsteuerung und das Wort "Google" neu zu positionieren?Positionieren von Google Maps v2 Vergrößern der Steuerelemente in Android

Ich weiß, Sie können aktivieren/deaktivieren Sie die Kontrollen mit:

map.getUiSettings().setZoomControlsEnabled(true); 

enter image description here

Antwort

12

Sie erreichen dies mit der GoogleMap.setPadding() Methode (hinzugefügt in September 2013):

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

Aus der API-Dokumentation:

Diese Methode ermöglicht es Ihnen, einen sichtbaren Bereich auf der Karte zu definieren, um der Karte zu signalisieren, dass Teile der Karte um die Kanten herum verdeckt werden können, indem auf jeder der vier Kanten der Karte eine Füllung gesetzt wird. Kartenfunktionen werden an das Padding angepasst. Zum Beispiel werden die Zoomsteuerung, Kompass, Copyright-Vermerke und Google-Logo bewegt werden innerhalb des definierten Bereichs zu passen, werden Kamerabewegungen in der Mitte des sichtbaren Bereichs relativ seine usw.

Auch die description of how padding works in GoogleMap sehen.

1

Leider gibt es keine Möglichkeit gibt, um die Zoomsteuerung mit Google Maps zur Verfügung gestellt bewegen Sie sie deaktivieren können und Ihre eigenen erstellen Zoomen Sie die Steuerelemente und platzieren Sie sie oben auf der Karte.

+0

Diese Frage ist veraltet, sehen Sie sich Mark Doliners Antwort an, die korrekt ist. – Warpzit

+0

Nun in Anbetracht dieser wurde waaaay im Jahr 2013 beantwortet ... js – yams

1

Ich denke, das wäre hilfreich für Sie. Ich versuche, ein ähnliches Layout zu implementieren, meine Lösung war zu versuchen, die Steuerelemente in einem zeitlich festgelegten Intervall wie 3 Sekunden bei Kameraaktualisierungen zu verstecken.

Ich denke, das ist die beste Lösung, ohne benutzerdefinierte Steuerelemente implementieren zu müssen.

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); 


      } 

     }); 

Dies war vor allem ein Beweis für das Konzept. Aber es funktioniert.

+0

Also versteckt das sie nur? Offenbar können Sie mit 4.4 eine transparente Aktionsleiste erstellen. Ich denke, sie erlauben Ihnen, sie mit kitkat – ono

+0

zu bewegen, die Idee war es, sie zu bewegen, um sie nur zu zeigen, wenn die Karte interagiert wurde und verstecken sie sonst. Es war ein Workaround, da ich noch keinen Weg gefunden habe, sie zu bewegen. – wapples

Verwandte Themen