1 Activity里观察MapVIew的加载
//这个功能是去掉地图的logo和放大缩小 刷新图标
signCardBinding.mapView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// ((ViewGroup) signCardBinding.mapView.getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
ViewGroup child = (ViewGroup) signCardBinding.mapView.getChildAt(0);//地图框架
// // child.getChildAt(0).setVisibility(View.VISIBLE);//地图
child.getChildAt(2).setVisibility(View.GONE);//logo
child.getChildAt(5).setVisibility(View.GONE);//缩放按钮
// child.getChildAt(6).setVisibility(View.GONE);//定位按钮
child.getChildAt(7).setVisibility(View.VISIBLE);//指南针
// signCardBinding.mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
2 缩放按钮和刷新按钮事件
private void setMapUi() {
// aMap.getUiSettings().setMyLocationButtonEnabled(true);
aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
}
@Override
public void onCameraChangeFinish(CameraPosition cameraPosition) {
if (cameraPosition.zoom <= aMap.getMinZoomLevel()) {
if (!signCardBinding.tvZoomUp.isEnabled()) {
signCardBinding.tvZoomUp.setEnabled(true);
}
if (signCardBinding.tvRoomDown.isEnabled()) {
signCardBinding.tvRoomDown.setEnabled(false);
}
} else if (cameraPosition.zoom < aMap.getMaxZoomLevel()) {
if (!signCardBinding.tvZoomUp.isEnabled()) {
signCardBinding.tvZoomUp.setEnabled(true);
}
if (!signCardBinding.tvRoomDown.isEnabled()) {
signCardBinding.tvRoomDown.setEnabled(true);
}
} else {
if (signCardBinding.tvZoomUp.isEnabled()) {
signCardBinding.tvZoomUp.setEnabled(false);
}
if (!signCardBinding.tvRoomDown.isEnabled()) {
signCardBinding.tvRoomDown.setEnabled(true);
}
}
}
});
signCardBinding.tvZoomUp.setOnClickListener(v -> {
float mapZoom = aMap.getCameraPosition().zoom;
LatLng mapTarget = aMap.getCameraPosition().target;
aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mapTarget, ++mapZoom));
});
signCardBinding.tvRoomDown.setOnClickListener(v -> {
float mapZoom = aMap.getCameraPosition().zoom;
LatLng mapTarget = aMap.getCameraPosition().target;
aMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mapTarget, --mapZoom));
});
signCardBinding.ivFresh.setOnClickListener(v ->
aMap.setMyLocationEnabled(true)//再次触发定位时候时候使用
// startLocation()
);
}