我创建了一个透明的操作栏,但它背后是缩放控件和“谷歌”这个词。我不知道如何调整他们的位置。Android 手机上的默认谷歌地图应用程序将它们提升到底部操作栏上方。是否可以重新定位缩放控件和“谷歌”一词?
我知道您可以通过以下方式启用/禁用控件:
map.getUiSettings().setZoomControlsEnabled(true);
我创建了一个透明的操作栏,但它背后是缩放控件和“谷歌”这个词。我不知道如何调整他们的位置。Android 手机上的默认谷歌地图应用程序将它们提升到底部操作栏上方。是否可以重新定位缩放控件和“谷歌”一词?
我知道您可以通过以下方式启用/禁用控件:
map.getUiSettings().setZoomControlsEnabled(true);
您可以使用GoogleMap.setPadding()方法(2013 年 9 月添加)完成此操作:
map.setPadding(leftPadding, topPadding, rightPadding, bottomPadding);
从 API 文档:
此方法允许您在地图上定义可见区域,通过在地图的四个边缘中的每一个上设置填充来向地图发出信号,表明边缘周围的地图部分可能会被遮挡。地图功能将适应填充。例如,缩放控件、指南针、版权声明和 Google 徽标将被移动以适应定义的区域,相机移动将相对于可见区域的中心等。
另请参阅有关填充如何在 GoogleMap 中工作的描述。
我认为这对你会有帮助。我正在尝试实现类似的布局,我的解决方案是尝试在相机更新时以 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);
}
});
这主要是一个概念证明。但它确实有效。
不幸的是,无法移动 Google 地图提供的缩放控件,您可以禁用它们并创建自己的自定义缩放控件并将它们放置在地图的顶部。
可以办到。自从被问及回答以来,也许已经发生了变化。
请在此处查看我提交的类似问题的答案:
简而言之,您可以获取缩放控件按钮的父布局并更改它的RelativeLayout LayoutParams。在我的回答中,我还包括如何移动指南针和工具栏。
如果您这样做是为了调整地图,则仅在底部使用边距或36dp
填充40dp
。否则,如果您在中心的地图上使用位置,则使用相机的属性,例如:
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
它专注于页面中间的位置。
这: mMap.getUiSettings().setZoomControlsEnabled(true);
只为您提供缩放级别,但不关注中等位置。