如何隐藏logo 高德地图api_Android 高德地图去掉 logo

本文介绍了两种方法隐藏Android高德地图上的logo。方法1是通过创建自定义的MyTextureMapView并重写布局监听器;方法2是在已有MapView上直接监听布局并设置子视图的可见性。通过这些技巧,可以成功去除地图界面的logo显示。
摘要由CSDN通过智能技术生成

我们先看看官方:

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) 逐个调试查看哪个子控件被隐藏了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值