2013-07-01 27 views
8

我已經創建了一個透明的操作欄,但縮放控件和「Google」這個詞在它後面。我不知道如何調整他們的位置。 Android手機上的默認Google地圖應用將它們置於底部操作欄上方。是否可以重新放置縮放控件和單詞「Google」?定位Google地圖v2放大Android中的控件

我知道你可以啓用/與禁用控件:

map.getUiSettings().setZoomControlsEnabled(true); 

enter image description here

回答

12

您可以用GoogleMap.setPadding()法(2013年9月加入)做到這一點:

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

從API文檔:

此方法允許您在地圖上定義的可見區域,通過在地圖的四個邊緣中的每一個上設置填充來向地圖發信號通知地圖周圍的地圖部分可能被遮擋。地圖功能將適應填充。例如,在變焦控制,指南針,版權聲明和谷歌的標誌將被移動到適合定義的區域內,攝像機運動將相對於可見光區域的中心等

另見description of how padding works in GoogleMap

1

不幸的是沒有辦法移動提供與谷歌地圖縮放控制您可以禁用它們,並創建自己的自定義縮放控件並將它們放置在地圖的頂部。

+0

這個問題已經過時,請看Mark Doliners的回答是否正確。 – Warpzit

+0

考慮到這個問題,在2013年回覆waaaay ... js – yams

1

我認爲這會對你有所幫助。我試圖實現一個類似的佈局,我的解決方案是嘗試和隱藏的控制時間間隔爲3秒的相機更新。

我認爲這是最好的解決方案,而不必實施自定義控件。

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


      } 

     }); 

這主要是一個概念證明。但它確實有效。

+0

所以這只是隱藏它們?看起來你可以用4.4創建一個透明的操作欄。我認爲他們允許你用kitkat – ono

+0

移動它們,而不是將它們移動到僅當地圖正在與之互動並隱藏它們時才顯示它們。這是一種解決方法,因爲我還沒有找到移動它們的方法。 – wapples

相關問題