最重要的就是加载完成图片之后在子线程添加Marker操作
网上说的通过view转成bitmap感觉没什么用

代码如下:代码如下:

Glide.with(mContext).load(mjbBean.getPicUrl()).into(new SimpleTarget<Drawable>() {@Override
                public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {iconView.setBackgroundDrawable(resource);
                    //3.通过view构建BitmapDescriptor
                    BitmapDescriptor bitmap = BitmapDescriptorFactory.fromView(custom_layout);
                    //3.1构建MarkerOption,用于在地图上添加Marker
                    MarkerOptions option = new MarkerOptions().position(llA).animateType(MarkerOptions.MarkerAnimateType.grow).zIndex(finalI).period(10).title(mjbBean.getName()).icon(bitmap);
                    // 掉下动画
//                  option.animateType(MarkerOptions.MarkerAnimateType.drop);
                    overlayOptions.add(option);
                    //4.构建Marker
                    Marker marker = (Marker) mBaiduMap.addOverlay(option);
                    //4.1使用marker携带info信息,当点击事件的时候可以通过marker获得info信息
                    Bundle bundle = new Bundle();
                    // info必须实现序列化接口
                    bundle.putSerializable("info", mjbBean);
                    marker.setExtraInfo(bundle);
                }});

废话不多说直接上代码:

修改之前的代码(Marker图片不显示):

//百度地图--=添加Marker>自定义view
    public void addOverlaysToMap() {//每个marker进入的方式使用集合存放
        List<OverlayOptions> overlayOptions = new ArrayList<OverlayOptions>();
        for (int i = 0; i < jbList.size(); i++) {//1.自定义view
            View custom_layout= View.inflate(this, R.layout.baidu_marker_layout, null);
            final ImageView iconView = (ImageView) custom_layout.findViewById(R.id.main_maker_iv);
            TextView nameView = (TextView) custom_layout.findViewById(R.id.tv_name);
            //2.关联数据
            JdlbBean mjbBean = jbList.get(i);
            LatLng llA = new LatLng(mjbBean.getLat(), mjbBean.getLon());
            nameView.setText(mjbBean.getName());
            KLog.d(mjbBean.getPicUrl());
            Glide.with(mContext).load(mjbBean.getPicUrl()).into(new SimpleTarget<Drawable>() {@Override
                public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {iconView.setBackgroundDrawable(resource);
                }});
            //设置成功后把View转换成Bitmap
            Bitmap viewBitmap = getViewBitmap(custom_layout);
            //3.通过view构建BitmapDescriptor
//            BitmapDescriptor bitmap = BitmapDescriptorFactory.fromView(view);
            BitmapDescriptor bitmap = BitmapDescriptorFactory.fromBitmap(viewBitmap);
            //3.1构建MarkerOption,用于在地图上添加Marker
            MarkerOptions option = new MarkerOptions().position(llA).animateType(MarkerOptions.MarkerAnimateType.grow).zIndex(i).period(10).title(mjbBean.getName()).icon(bitmap);
            // 掉下动画
//            option.animateType(MarkerOptions.MarkerAnimateType.drop);
            overlayOptions.add(option);
            //4.构建Marker
            Marker marker = (Marker) mBaiduMap.addOverlay(option);
            //4.1使用marker携带info信息,当点击事件的时候可以通过marker获得info信息
            Bundle bundle = new Bundle();
            // info必须实现序列化接口
            bundle.putSerializable("info", mjbBean);
            marker.setExtraInfo(bundle);
        }// 将地图显示最开始一个marker的位置
        JdlbBean mjbBean = jbList.get(0);
        LatLng latLng = new LatLng(mjbBean.getLat(), mjbBean.getLon());
        MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
//      mBaiduMap.setMapStatus(msu);
        mBaiduMap.animateMapStatus(msu);// 动画的方式到中间
    }

修改之后的代码(多个Marker的图片都可以显示):

//百度地图--=添加Marker>自定义view
    public void addOverlaysToMap() {//每个marker进入的方式使用集合存放
        final List<OverlayOptions> overlayOptions = new ArrayList<OverlayOptions>();
        for (int i = 0; i < jbList.size(); i++) {//1.自定义view
            final View custom_layout = View.inflate(this, R.layout.baidu_marker_layout, null);
            final ImageView iconView = (ImageView) custom_layout.findViewById(R.id.main_maker_iv);
            TextView nameView = (TextView) custom_layout.findViewById(R.id.tv_name);
            //2.关联数据
            final JdlbBean mjbBean = jbList.get(i);
            final LatLng llA = new LatLng(mjbBean.getLat(), mjbBean.getLon());
            nameView.setText(mjbBean.getName());
            KLog.d(mjbBean.getPicUrl());
            final int finalI = i;
            Glide.with(mContext).load(mjbBean.getPicUrl()).into(new SimpleTarget<Drawable>() {@Override
                public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {iconView.setBackgroundDrawable(resource);
                    //3.通过view构建BitmapDescriptor
                    BitmapDescriptor bitmap = BitmapDescriptorFactory.fromView(custom_layout);
                    //3.1构建MarkerOption,用于在地图上添加Marker
                    MarkerOptions option = new MarkerOptions().position(llA).animateType(MarkerOptions.MarkerAnimateType.grow).zIndex(finalI).period(10).title(mjbBean.getName()).icon(bitmap);
                    // 掉下动画
//                  option.animateType(MarkerOptions.MarkerAnimateType.drop);
                    overlayOptions.add(option);
                    //4.构建Marker
                    Marker marker = (Marker) mBaiduMap.addOverlay(option);
                    //4.1使用marker携带info信息,当点击事件的时候可以通过marker获得info信息
                    Bundle bundle = new Bundle();
                    // info必须实现序列化接口
                    bundle.putSerializable("info", mjbBean);
                    marker.setExtraInfo(bundle);
                }});
        }// 将地图显示最开始一个marker的位置
        JdlbBean mjbBean = jbList.get(0);
        LatLng latLng = new LatLng(mjbBean.getLat(), mjbBean.getLon());
        MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);
//      mBaiduMap.setMapStatus(msu);
        mBaiduMap.animateMapStatus(msu);// 动画的方式到中间
    }

参考:http://blog.csdn.net/bob_xing_yang/article/details/53161033

百度地图动态添加marker的图片显示问题相关推荐

  1. android百度地图覆盖物异步加载图片,Android 百度地图marker中图片不显示的解决方法(推荐)...

    目的: 根据提供的多个经纬度,显示所在地的marker样式,如下: 问题: 1.发现marker中在线加载的图片无法显示出来: 2.获取多个对象后,却只显示出了一个marker: 以下为官网实现方法: ...

  2. 百度地图之添加覆盖物

    本文主要讲解如何实现在百度地图上添加覆盖物 1.承载数据的实体 我们从服务器返回的数据部分,最终可能是个Json数组,我们需要转换为实体集合,即下面的Info.java 我直接在实体类中声明了一个静态 ...

  3. 关于百度地图动态事件调用的使用

    一次调试百度地图动态marker事件监听的问题,不知如何解决,后来看了原作者jz1108才知道要用闭包.觉得原作者jz1108关于百度地图的文章写的不错,所以转载到了CSDN,为了尊重原作者jz110 ...

  4. 百度地图之添加覆盖物并响应事件

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 本文中将介绍在百度地图上添加覆盖物的功能.响应点击功能和弹出pop功能,代码来自百度Demo: Activit ...

  5. 用百度地图实现添加电子围栏并判断是否在范围内

    用百度地图实现添加电子围栏并判断是否在范围内 做一个社区矫正系统时,误以为是给每个人设置一个活动范围,做了一个Demo, 以用户位置为中心,设置电子围栏半径并判断是否在范围内 预览: HTML代码如下 ...

  6. echarts引入百度地图并且添加点击事件

    echarts引入百度地图并且添加点击事件 (1)下载依赖项 npm install echarts --save (2)引入echarts到页面当中 import * as echarts from ...

  7. android高德marker添加点击,高德地图上添加marker,给每一个marker添加点击事件。...

    高德地图上添加marker,给每一个marker添加点击事件. 高德地图上添加marker,给每一个marker添加点击事件.javascript var watch = [] $.ajax({ ty ...

  8. qaxwidget传递参数到html,记一次QT使用QAxWidget打开.html文件调用显示离线百度地图不能缩放,自定义图片不能显示解决方法...

    主要问题: 一开始用的是在线的,都没有什么问题,自定义图片均可以显示,可是后面试了一下离线百度地图,在qt中运行打开.html文件和在电脑上面直接双击打开此文件显示是有差别的,在qt生成的程序中,地图 ...

  9. 百度地图生成器添加标注不显示

    最近发现百度地图生成器生成的地图中标注的图片不显示,如下图: 很明显了,就是这个图标路径(http://app.baidu.com/map/images/us_mk_icon.png)的问题 在生成的 ...

  10. Android — 之百度地图定位+添加Mark+InfoWindow

    前言: 新手上路,这几天在弄百度地图SDK的使用(吐槽 : 官网上的开发指南简直就是实力坑爹,可能是开发人员太忙,维护不及时吧),我对本次学习的要求也不高:能正常显示地图,能定位,能添加mark(覆盖 ...

最新文章

  1. 大数据笔记2019.5.7
  2. php如何直接使用iview,iview 使用总结
  3. google官方上拉刷新
  4. Windows Server 2008远程桌面多用户登陆的配置方法
  5. python 乘法内置函数_Python内置函数--reversed()
  6. 推荐系统必读的10篇精选技术文章
  7. 超级计算机summit存储容量,美国Summit超级计算机:采用超过27000块NV计算卡
  8. GT9xxxxx系列------如何加入电源管理模块
  9. PHP实现物流查询(通过快递网API实现)
  10. 分析C++软件异常需要掌握的汇编知识汇总
  11. 笔记本通过网线连接台式机共享网络
  12. 你真的了解“药品追溯码”吗?
  13. K12教育小初高各个版本教材内的章节数据
  14. 机器学习(MATLAB实现)——SVM支持向量机(一)
  15. 上证50成分股聚类可视化
  16. 刘鹏教授受邀参加秦淮知识产权日主题宣传 · 圆桌论坛
  17. 小学学校计算机里的单机游戏,15年前的农村小网吧,那个时候只能玩这些单机游戏...
  18. 适当处理错误(捕获异常)
  19. oracle undo与redo的区别
  20. 易语言mysql列表框_详谈易语言的列表框

热门文章

  1. 单GPU实现20Hz决策,最新基于序列生成模型的高效轨迹规划方法
  2. 有哪些好用且免费的安全测试工具?
  3. 许凯拍《招摇》冻到嘴唇发紫 夸赞导演更敬业
  4. [4G5G专题-6]:架构 5G的八大组网方案
  5. 转:一位10年Java工作经验的架构师聊Java和工作经验
  6. mysql hugepage_Linux配置HugePage
  7. matlab右上角星号怎么打出来,星号怎么打出来(教你怎么输入特殊符号)
  8. linux无法访问移动硬盘,移动硬盘“无法访问”的解决方案
  9. 计算机没有显示插入的移动硬盘,电脑插入移动硬盘没有显示的解决办法
  10. 一文读懂云计算、大数据、人工智能