服务端返回一组 marker 数组,for 循环里添加自定义布局 marker到地图上
要注意两个原因不显示 marker
1,要在图片加载完后再把 布局view添加到 marker 上
2,markerOption必须是 for 循环里的变量,不能是全局变量,不然可能这个 marker 还没加载好,markerOption就被下一个循环给初始化了
for (MapShopItemBean item : shop) { MarkerOptions markerOption = new MarkerOptions(); markerOption .position(latlng)// 经纬度 .draggable(false) .setFlat(true); View view = LayoutInflater.from(this).inflate(R.layout.activity_map_marker_shop, null); ImageView shop_Img = view.findViewById(R.id.shop_Img); ImageUtil.INSTANCE.loadBitmapSync(this, item.getIconPath(), new SimpleTarget<Bitmap>() { @Override public void onResourceReady(@NonNull Bitmap bitmap, @Nullable Transition<? super Bitmap> transition) { shop_Img.setImageBitmap(bitmap); markerOption.icon(BitmapDescriptorFactory.fromView(view)); markerOption.anchor(0.0f, 0.5f); marker = aMap.addMarker(markerOption); marker.setMarkerOptions(markerOption); } }); }
ImageUtil.INSTANCE.loadBitmapSync只是封装的 Glide