Rob*_*ill 27 android google-maps google-maps-android-api-2
如何在GoogleMap V2中自定义内置缩放控件的位置?
对于Google地图库的第1版,有很多与此主题相关的问题.
如何使用setBuiltInZoomControls(true)布局缩放控件?
但是,我无法找到与库的V2有关的任何问题.
在V2中,没有方法
(LinearLayout) mapView.getZoomControls();
Run Code Online (Sandbox Code Playgroud)
所有前面提到的问题都已过时.
提前致谢
Mar*_*ner 38
根据您要执行的操作,您可能会发现GoogleMap.setPadding()很有用(2013年9月添加).
map.setPadding(leftPadding, topPadding, rightPadding, bottomPadding);
Run Code Online (Sandbox Code Playgroud)
来自API文档:
此方法允许您在地图上定义可见区域,通过在地图的四个边缘中的每一个上设置填充来向地图发信号通知边缘周围的地图部分可能被遮挡.地图功能将适应填充.例如,缩放控件,指南针,版权声明和Google徽标将移动到适合定义区域内,相机移动将相对于可见区域的中心等.
另请参阅有关填充在GoogleMap中的工作原理的说明.
vov*_*kab 24
是的,你可以用小黑客改变ZoomControl和MyLocation按钮的位置.在我的示例中,我有SupportMapFragment,它是从xml布局中膨胀的.
查看ZoomControl和MyLocation按钮的ID:
ZoomControl id = 0x1
MyLocation button id = 0x2
Run Code Online (Sandbox Code Playgroud)
用于更新ZoomControl位置的代码:
// Find map fragment
SupportMapFragment mapFragment = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.map);
// Find ZoomControl view
View zoomControls = mapFragment.getView().findViewById(0x1);
if (zoomControls != null && zoomControls.getLayoutParams() instanceof RelativeLayout.LayoutParams) {
// ZoomControl is inside of RelativeLayout
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) zoomControls.getLayoutParams();
// Align it to - parent top|left
params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
// Update margins, set to 10dp
final int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10,
getResources().getDisplayMetrics());
params.setMargins(margin, margin, margin, margin);
}
Run Code Online (Sandbox Code Playgroud)