2013-07-01 24 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

相关问题