1. 程式人生 > >高德地圖自定義 marker 佈局里加載網路圖片不顯示的問題

高德地圖自定義 marker 佈局里加載網路圖片不顯示的問題

服務端返回一組 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