关于百度地图InfoWindow响应自定义布局点击事件
大概讲解:
在百度地图上显示一个marker,当marker被点击后,显示自定义的View.当自定义的View被点击后,响应不同Button的点击事件。被百度这个infowindo里面的view坑惨了,一直以为不能点击呢??原来里面的view可以点击也可以被响应!!
先看效果图:

备注:点击详情(进入此任务详情、点击导航进入百度导航)
代码如下:
baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
LatLng latLng =marker.getPosition();
InfoWindow currentInfoWindow = new InfoWindow(getInfoWindoView(marker,taskJson),latLng, -77);
baiduMap.showInfoWindow(currentInfoWindow);
return true;
}
});
那么Infowindow的自定义View在哪里呢?
private View getInfoWindoView(final Marker marker,final JsonObject taskJson){
if (null == infoView) {
infoView = (ViewGroup) LayoutInflater.from(assignmentsActivity).inflate(R.layout.balloon_overlay, null);
}
tvTitle = (TextView) infoView.findViewById(R.id.balloon_item_title);
tvDetailLocation = (TextView) infoView.findViewById(R.id.balloon_item_snippet);
layout_taskInfo = (LinearLayout) infoView.findViewById(R.id.layout_taskInfo);
iv_navigation = (ImageView) infoView.findViewById(R.id.iv_navigation);
tvTitle.setText(marker.getExtraInfo().getString("title"));
tvDetailLocation.setText(marker.getExtraInfo().getString("subject"));
layout_taskInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Common.switchToTaskDetail(assignmentsActivity, taskJson);
}
});
iv_navigation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewInMapApp(marker.getPosition().latitude, marker.getPosition().longitude);
}
});
return infoView;
}
Infowindow在初始化的时候一定要这样 才可以响应单独的点击事件。
InfoWindow currentInfoWindow = new InfoWindow(getInfoWindoView(marker,taskJson),latLng, -77);
关于百度地图InfoWindow响应自定义布局点击事件的更多相关文章
- 百度地图Api之自定义标注:(获得标注的经纬度和中心经纬度即缩放度)
百度地图Api之自定义标注:(获得标注的经纬度和中心经纬度即缩放度) <%@ Page Language="C#" AutoEventWireup="true&qu ...
- 【百度地图API】自定义可编辑的交通路线
原文:[百度地图API]自定义可编辑的交通路线 任务描述: 我想自己绘制一条从地铁站出口到天安门的道路,而且还需要根据我的喜好来改变这条路线. 如何实现: 鼠标左击地图,绘制路线:双击后,绘制结束:绘 ...
- 【百度地图API】如何判断点击的是地图还是覆盖物?
原文:[百度地图API]如何判断点击的是地图还是覆盖物? 摘要:很多API爱好者问我,为什么我点击的是marker,而map也会响应该事件呢?怎样才能判断,我点击的是标注,还是地图呢?下面一起来看看. ...
- TabLayout.Tab(自定义)点击事件
TabLayout是官方design包中的一个布局控件,这里不介绍它的基本使用,只是解决Tab(自定义)点击事件. //获取Tab的数量 Int tabCount = tabLayout.getTab ...
- 百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题
项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖 ...
- Android定位&地图&导航——基于百度地图,实现自定义图标绘制并点击时弹出泡泡
一.问题描述 上一次我们使用百度地图实现基本的定位功能,接下来我们继续实现搜索和定位,并使用LocationOverlay绘制定位位置,同时展示如何使用自定义图标绘制并点击时弹出泡泡 如图所示: 二. ...
- 使用百度地图LBS创建自定义标注
<body> <div id="allmap"></div> <div class="sel_container" i ...
- 百度地图infoWindow圆角处理
最近的一个项目用到了百度地图API里边的infoWindow弹框,但是百度自带的infoWindow弹框是个直角的矩形框,显示过于难看,于是有了将该框改为圆角的想法,但是API本身不支持样式的设置,所 ...
- 百度地图API 循环向 marker 添加 click事件
使用百度地图API,循环向marker添加InfoWindow时,所有的marker点击弹出的inforwindow为最后一个添加的infowindow,百度后,使用js闭包解决此问题,直接贴代码: ...
随机推荐
- Android Toast封装
package com.whoop.mobile.trace.util; import android.content.Context; import android.content.res.Reso ...
- mysql去掉字段字符中间空格
mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数. ...
- atitit.提升研发效率的利器---重型框架与类库的差别与设计原则
atitit.提升研发效率的利器---重型框架与类库的差别与设计原则 1. 框架的意义---设计的复用 1 1.1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 2.1 ...
- 使用glob()查找文件(转)
大部分PHP函数的函数名从字面上都可以理解其用途,但是当你看到 glob() 的时候,你也许并不知道这是用来做什么的,其实glob()和scandir() 一样,可以用来查找文件,请看下面的用法: ...
- Injecting and Binding Objects to Spring MVC Controllers--转
I have written two previous posts on how to inject custom, non Spring specific objects into the requ ...
- 阻塞机制下的recv小结
recv是socket编程中最常用的函数之一,在阻塞状态的recv有时候会返回不同的值,而对于错误值也有相应的错误码,分别对应不同的状态,下面是我针对常见的几种网络状态的简单总结. 首先阻塞 ...
- 利用eclipse开发php<转>
1.安装php环境 Eclipse支持PHP自动提示 其实如果你已经安装好了php环境(安装过程见)的话,只需要下面2步就可以了.hoho,很简单的. 1,下载eclipse中php的插件phpecl ...
- cocoapods出现Diff: /../Podfile.lock: No such file or directory错误
第一种解决方法: 关闭Xcode,重新执行pod install,之后再重新打开Xcode运行. 第二种解决方法: 删除以下文件: xcworkspacePodfile.lockPods文件夹~/Li ...
- 监听UITabBarItem来拦截是否要跳转
情景是这样的: 我需要在用户点击"我的"的时候, 判断是否已经登录, 如果没有, 就不进入该界面, 而是跳转到用户登录界面, 所以这里我需要进行UITabBarItem点击事件的拦 ...
- Struts2 模型驱动及页面回显
* 要从页面中获取表单元素的值,需要在动作类中声明与页面元素同名的属性.导致动作类中既有javabean又有业务方法. * 将javabean和业务方法进行分离: * 将重 ...