百度地图,绘制带网络图片的Marker

感谢我大哥提供的思路!!!

就是这个小崽子 ↓ 



 

 

dataList : 数据List

points : 经纬度List


    private void buildMarker(int index){

        Bundle bundle = new Bundle();
        bundle.putSerializable("userData",dataList.get(index));

        View marker_user = LayoutInflater.from(me).inflate(R.layout.marker_map_res, null);
        //加载头像
        ImageView marker_userHead = marker_user.findViewById(R.id.marker_userHead);
        String path = dataList.get(index).getUserHeadPath() == null ? "null" : dataList.get(index).getUserHeadPath();

        Glide.with(me)
                .asBitmap()
                .load(path)
                .transform(new CenterCrop(),new CircleCrop())
                .listener(new RequestListener<Bitmap>() {
            @Override
            public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {

                marker_userHead.setImageResource(R.mipmap.user_avatar);
                //构建MarkerOption,用于在地图上添加Marker
                OverlayOptions option = new MarkerOptions()
                        //位置 必传
                        .position(points.get(index))
                        //图标 必传
                        .icon(view2Marker(marker_user))
                        //额外信息
                        .extraInfo(bundle)
                        //是否可拖拽
                        .draggable(false)
                        //设置平贴地图,在地图中双指下拉查看效果
                        .flat(true)
                        //加载时动画
                        .animateType(MarkerOptions.MarkerAnimateType.grow);
                //在地图上添加Marker,并显示
                mapViewCtrl.addOverlay(option);

                return false;
            }

            @Override
            public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {

                marker_userHead.setImageBitmap(resource);
                //构建MarkerOption,用于在地图上添加Marker
                OverlayOptions option = new MarkerOptions()
                        //位置 必传
                        .position(points.get(index))
                        //图标 必传
                        .icon(view2Marker(marker_user))
                        //额外信息
                        .extraInfo(bundle)
                        //是否可拖拽
                        .draggable(false)
                        //设置平贴地图,在地图中双指下拉查看效果
                        .flat(true)
                        //加载时动画
                        .animateType(MarkerOptions.MarkerAnimateType.grow);
                //在地图上添加Marker,并显示
                mapViewCtrl.addOverlay(option);


                return false;
            }
        }).preload();
        
    }
 /**
     * 把View转成Marker的Icon
     * @param view 要转换的View
     * @return
     */
    private BitmapDescriptor view2Marker(View view){

        view.setDrawingCacheEnabled(true);
        view.measure(
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        view.layout(0, 0,
                view.getMeasuredWidth(),
                view.getMeasuredHeight());
        view.buildDrawingCache();
        //获取到图片,这样就可以添加到Map上
        Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());

        return BitmapDescriptorFactory.fromBitmap(bitmap);

    }

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WWGtest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值