高德地图,自定义缩放按钮和刷新定位button

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

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值