Android 高德地图去掉 logo

我们先看看官方:
说的很清楚了,不可移除,只支持调整到固定位置 。
然而,也并不是没有办法,方法可参考
方法1、重写
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() {@Overridepublic void onGlobalLayout() {ViewGroup child = (ViewGroup) getChildAt(0);//地图框架// child.getChildAt(0).setVisibility(View.VISIBLE);//地图child.getChildAt(1).setVisibility(View.GONE);//logo}});}}
然后重新引用此类,将可以成功隐藏此 logo 。
方法2、获得后直接监听

Android 高德地图去掉 logo

文章插图
【Android 高德地图去掉 logo】mapView = findViewById(R.id.map);mapView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {((ViewGroup) mapView.getChildAt(0)).getChildAt(1).setVisibility(View.GONE);mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);}});// 此方法必须重写mapView.onCreate(savedInstanceState);
这样就可以隐藏 logo 了,和隐藏 logo 的方法是一样的 。
小技巧:
大家可以通过的() 得到子控件的个数,再通过
(int index).(View.GONE) 逐个调试查看哪个子控件被隐藏了 。