Android 高德地图去掉 logo

我们先看看官方:

https://lbs.amap.com/api/android-sdk/guide/interaction-with-map/control-interaction/

说的很清楚了,不可移除,只支持调整到固定位置。

然而,也并不是没有办法,方法可参考 https://blog.csdn.net/qq_29011851/article/details/78460347


方法1、重写 MapView

public class MyTextureMapView extends TextureMapView {

    private Context context;

    public MyTextureMapView(Context context) {
        super(context);
    }

    public MyTextureMapView(Context context, AttributeSet attributeSet) {
        super(context, attributeSet);
        init(context);
    }

    public MyTextureMapView(Context context, AttributeSet attributeSet, int i) {
        super(context, attributeSet, i);
        init(context);
    }

    public MyTextureMapView(Context context, AMapOptions aMapOptions) {
        super(context, aMapOptions);
        init(context);
    }

    private void init(Context context) {
        this.context = context;
        // view 加载完成时回调
        this.getViewTreeObserver().addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    ViewGroup child = (ViewGroup) getChildAt(0);//地图框架
                    // child.getChildAt(0).setVisibility(View.VISIBLE);//地图
                    child.getChildAt(1).setVisibility(View.GONE);//logo   
                }
            });
    }
}

然后重新引用此类,将可以成功隐藏此 logo。


方法2、获得 MapView 后直接监听 Layout

mapView = findViewById(R.id.map);
mapView.getViewTreeObserver().addOnGlobalLayoutListener(
    new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                ((ViewGroup) mapView.getChildAt(0)).getChildAt(1).setVisibility(View.GONE);
                mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            }
        });
// 此方法必须重写
mapView.onCreate(savedInstanceState);

这样就可以隐藏 logo 了,TextureMapView 和 MapView 隐藏 logo 的方法是一样的。


小技巧:
        大家可以通过 ViewGrouop 的 getChildCount() 得到 MapView 子控件的个数,再通过
 getChildAt(int index).setVisibility(View.GONE) 逐个调试查看哪个子控件被隐藏了。

 
 
 
 
 
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值