Android进阶:在地图MapView中 点击Overlay弹出带带尾巴的浮动气泡 提示信息并关闭

本文介绍如何在地图应用中实现POI点查询及详细信息弹窗展示功能。通过自定义ItemizedOverlay并在点击事件中更新弹窗位置与内容,实现用户交互友好体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用户查询POI点后会在MapView中以Overlay的方式显示POI点信息 用户点击Overlay后可以显示详细信息

 

先看效果如图

 

 

在相应的Overlay所在的GeoPoint显示该提示

 

下面看实现:

 

首先背景为9patch图片

 

 

这样就可以随意在里面加内容了 我这里通过一个布局文件来进行控制

 

 

用了RelativeLayout的布局 对文字的宽度进行了设置,防止文字过多导致超出屏幕范围

那这里也可以根据手机屏幕宽度进行动态设置

 

然后再oncreate中初始化这个View

 

 

这里没有设置GeoPoint  由于气泡的尾巴是在下边居中的,因此要设置成MapView.LayoutParams.BOTTOM_CENTER.

 

默认是不可见的。。这里必须要设置为View.GONE 因为  View.INVISIBLE还是会在onlayout中给View定位的 这里没有设置GeoPoint就会报错

 

然后就可以在自己实现的ItemizedOverlay<OverlayItem> 类中的方法onTap中显示该View

其中mContext就是自己实现的MapActivity

 

这里根据当前点击的Overlay拿到该GeoPoint 然后设置到MapView.LayoutParams中

 

然后设置为可见 就会显示说明信息了。。同样点击关闭按钮就会设置为View.GONE

 

 

代码下载地址:   googlemaptest.rar

 

评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值