2013-07-01 7 views
8

Stworzyłem przezroczysty pasek akcji, ale za nim znajdują się elementy sterujące powiększeniem i słowo "Google". Nie mam pojęcia, jak zmienić ich lokalizację. Domyślna aplikacja Google Map na telefony z Androidem ma je uniesione nad dolnym paskiem akcji. Czy można zmienić położenie elementów sterujących powiększeniem i wyrazu "Google"?Pozycjonowanie Google maps v2 powiększanie kontroli w Androidzie

wiem można włączyć/wyłączyć kontrolki z:

map.getUiSettings().setZoomControlsEnabled(true); 

enter image description here

Odpowiedz

12

Można tego dokonać za pomocą metody GoogleMap.setPadding() (dodanej we wrześniu 2013):

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

Od docs API:

Metoda ta pozwala na zdefiniowanie widoczny obszar na mapie, aby zasygnalizować mapie, że części mapy wokół krawędzi mogą być zasłonięte, ustawiając dopełnienie na każdej z czterech krawędzi mapy. Funkcje mapy zostaną dostosowane do dopełnienia. Na przykład, sterowanie zoomem, kompas, informacje o prawach autorskich i logo Google zostanie przeniesiony do zmieścić w określonym regionie, ruchy kamery będą w stosunku do centrum obszarze widzialnym itp

Zobacz także description of how padding works in GoogleMap.

1

Niestety nie ma sposobu, aby przejść kontrole zoom dostarczonych z Google Maps można je wyłączyć i stworzyć swój własny powiększ kontrolki i umieść je na górze mapy.

+0

To pytanie jest nieaktualne, spójrz na odpowiedź Marka Doliners, która jest prawidłowa. – Warpzit

+0

Cóż, biorąc pod uwagę to, odpowiedział waaaay w 2013 ... js – yams

1

Myślę, że byłoby to pomocne dla Ciebie. Próbuję zaimplementować podobny układ, moim rozwiązaniem jest próba ukrycia elementów sterujących w odstępach czasowych, takich jak 3 sekundy w przypadku aktualizacji kamery.

Uważam, że jest to najlepsze rozwiązanie bez konieczności stosowania niestandardowych elementów sterujących.

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


      } 

     }); 

To był głównie dowód koncepcji. Ale to działa.

+0

Więc to po prostu je ukrywa? Wygląda na to, że możesz utworzyć przezroczysty pasek akcji z 4.4. Myślę, że pozwalają przenieść je za pomocą zestawu KitKat – ono

+0

zamiast przesuwać je, aby pokazać je tylko podczas interakcji z mapą i ukryć je w inny sposób. To było obejście, ponieważ nie znalazłem jeszcze sposobu na ich przeniesienie. – wapples

Powiązane problemy