项目需要在marker上添加对应的备注,这个效果在其他App上也可以见到,在朋友的帮助下,发现实现这个效果也不是很难。
首先上效果图:


由于没有找到合适的图片,所有备注的背景开口方向不对,这里仅做个示例不要在意那些细节。

还是应该先说一下实现思路吧,我们知道,marker的点的图标,是可以自定义的,根据我们公司web开发人员所说,web端是提供了为marker显示备注的api,但我们手机端没有对应的api,虽然,但是还是可以实现的。可能有人会想到,把显示的图标和备注写在一起做成,marker图标不就行了吗,而我,就是这样实现的。

主布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><com.baidu.mapapi.map.MapViewandroid:id="@+id/activity_test_mv_mapview"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true"/>
</LinearLayout>

marker布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/item_main_flight_remark_iv_image"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:src="@mipmap/ic_flight"/></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@mipmap/popup_flight_info"android:gravity="center_vertical"><TextViewandroid:id="@+id/item_main_flight_remark_tv_remarks"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5dp"/></LinearLayout></LinearLayout>
目前的布局是这样的:

    private BitmapDescriptor ic_flight;private Marker mBGMarker; // 飞机Marker@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_test);ButterKnife.bind(this);initWidget();addFlightInfo(FlightInfo.flightInfos);}private void initWidget(){mBaiduMap = mv_mapview.getMap();}/*** 添加marker**/private void addFlightInfo(List<FlightInfo> flightInfos){LatLng latLng = null ;View view = LayoutInflater.from(TestActivity.this).inflate(R.layout.item_main_flight_remark, null);ImageView iv_image = (ImageView)view.findViewById(R.id.item_main_flight_remark_iv_image);TextView tv_remarks = (TextView)view.findViewById(R.id.item_main_flight_remark_tv_remarks);for (int i = 0; i < flightInfos.size(); i++){
//            iv_image.setImageResource(R.mipmap.ic_del_all); // 自定义修改marker左边的图标tv_remarks.setText(String.format("型号:%1$s\n单位:%2$s\n速度:%3$s\n",flightInfos.get(i).getModel(),flightInfos.get(i).getNum(), flightInfos.get(i).getSpeed()));latLng = new LatLng(flightInfos.get(i).getLatitude(), flightInfos.get(i).getLongitude());ic_flight = BitmapDescriptorFactory.fromBitmap(getBitmapFromView(view));MarkerOptions mo = new MarkerOptions().position(latLng).icon(ic_flight).zIndex(i).draggable(true);mBGMarker = (Marker) (mBaiduMap.addOverlay(mo));}MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(latlng);// 移动中心店至最后一个点mBaiduMap.animateMapStatus(u);}

FlightInfo.flightInfos是我写的静态类里的模拟数据
可以看到,我们的布局通过BitmapDescriptorFactory.fromBitmap(getBitmapFromView(view);这个方法,将布局加载成了一个bitmap,然后作为marker的点显示到地图上。

献上工具类:
public class BitmapTransView
{public static Bitmap getBitmapFromView(View view) {view.destroyDrawingCache();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.setDrawingCacheEnabled(true);Bitmap bitmap = view.getDrawingCache(true);return bitmap;}
}

如此,就实现了我们要的功能。结合我之前的博客可实现点击marker弹出详情等更多功能。

如果帮到你,请帮我点赞啦,谢谢。

工具下载地址:http://download.csdn.net/detail/u012552275/9705461


百度地图4.1_1开发教程(8)为marker加上备注相关推荐

  1. 百度地图api php开发教程,百度地图API使用方法详解_PHP

    最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子. 示例一: API地址:http://developer.baidu.com/map/js ...

  2. 百度地图api php开发教程,百度地图API使用方法详解_php实例

    最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子. 示例一: API地址:http://developer.baidu.com/map/js ...

  3. 百度地图API的使用教程以及案例

    百度地图API的使用教程以及案例 一.注册 百度地图:掌握当前的位置在网页显示位置,插入地图 拖拽,点击事件. 注意:定位 距离 公交 不关心 官网: 点我进入百度地图官网 应用场景:网页插入百度地图 ...

  4. 百度地图LBS应用开发代码

    最近因为工作需要,领导要我将51地图API开发的一个应用迁移到百度地图,或者说用百度地图API进行重写,实现同样的功能.我先是把现有的这个51地图的应用了解了一下,然后就试着用百度地图做一些demo, ...

  5. 百度区块链 XuperChain开发教程(第二部分)

    百度区块链 XuperChain开发教程(第二部分) 第一部分编译完成后,现在开始进入测试部分: $ cd output/ $ ./xchain-cli createChain msg="c ...

  6. 浅谈百度地图的简单开发再续前缘之公交,地铁路线检索查询(六)

    关于百度地图的简单开发前段时间,写过一个小系列的博客关于百度地图的基本地图,定位,全景,导航等功能做了简单的介绍.从今天开始又将准备一期有关百度地图的POI检索的等一列查询功能,如城市检索,周边检索, ...

  7. 浅谈百度地图的简单开发最后收官之实现导航功能(五)

    这篇是高仿百度地图的最后一篇了,今天主要来实现百度地图的导航的功能,并且该导航还自带语音播报功能,然后最后对整个百度地图开发过程遇到的问题进行一些列举,并给出一些解决的办法,可能总结的不是很齐全,希望 ...

  8. 百度地图api离线开发(示例源代码)

    相关教程:               1.如何搭建WEB离线地图开发环境               2.下载离线地图数据(金字塔瓦片数据)               3.离线地图二次开发接口(离 ...

  9. 利用百度地图天气API开发微信小程序

    2020.11.24更新: 更换了天气数据源,增加了小时预报和未来6天预报. 2020.11.19更新: 由于百度的API一直有问题,所以修改了初始进入后的定位方法. 2020.11.05更新: 最近 ...

最新文章

  1. 一致性哈希算法以及其PHP实现
  2. 皮卡丘为什么不进化_精灵宝可梦:进化后反而变弱的精灵!皮卡丘:知道我为什么不进化了?反而会变弱!...
  3. 字符集(CHARACTER SET)和校对集(COLLATE)
  4. 想法记录---实时计算的TopN的实现
  5. 用Java描述数据结构之栈和队列,以及栈和队列的常用方法
  6. 网页打开Android APP
  7. sysbench压测cpu,io,memory,threads,mutex
  8. SQL2008数据库可疑状态处理
  9. LAMP架构一(介绍)
  10. java实现等额本息算法
  11. 容灾~~~~~~~~~~~~~~~~~~~~
  12. 街景地图工作是如何工作的
  13. css动画中文字慢慢显示,利用定时器和css3动画制作文字依次渐变显示的效果
  14. java聚合函数_count()聚合函数正确用法
  15. 澳洲八大的IB(International Baccalaureate)成绩录取要求
  16. *ST荣联:正在培养区块链团队,积极储备相关解决方案的能力
  17. 2017年5月问题记录与总结——powerpc p1020 spi flash驱动
  18. php 数组 时间戳排序,php – 按时间戳排序Summed Collection
  19. 功率二极管的损耗分析和选型原则
  20. 实时数据库在超大集团中应用的技术要求和典型场景—以风力发电为例

热门文章

  1. python的web抓取_使用Python进行web抓取的新手指南
  2. Linux设置空闲超时时间
  3. 有哪些值得推荐的半入耳式蓝牙耳机?目前最好的半入耳蓝牙耳机推荐
  4. Html5新增标签总结
  5. 群辉Video Station显示封面
  6. phpcms域名搬家流程
  7. Oracle操作手册
  8. JS中数组的合并与去重
  9. typescript学习之路(四) —— ts类的继承(包含es5以及es6的类继承)
  10. Mysql性能调优常用参数配置