关于百度地图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);

Technorati 标签: 百度地图,android百度

时间: 2024-10-01 07:29:18

关于百度地图InfoWindow响应自定义布局点击事件的相关文章

【百度地图API】自定义可编辑的交通路线

原文:[百度地图API]自定义可编辑的交通路线 任务描述: 我想自己绘制一条从地铁站出口到天安门的道路,而且还需要根据我的喜好来改变这条路线. 如何实现: 鼠标左击地图,绘制路线:双击后,绘制结束:绘制结束后,路线可编辑. TIPS: API1.1以后,可以使用enableEditing()来开启折线可编辑功能. 图示: 运行代码,请点击这里. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &

百度地图地点搜索和鼠标点击地点获取经纬度

百度地图地点搜索和鼠标点击地点获取经纬度,这些都是地图比较基本 效果图:如下 代码部分: <!DOCTYPE html><html>    <head>    <meta charset="utf-8">    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

【百度地图API】如何判断点击的是地图还是覆盖物?

原文:[百度地图API]如何判断点击的是地图还是覆盖物? 摘要:很多API爱好者问我,为什么我点击的是marker,而map也会响应该事件呢?怎样才能判断,我点击的是标注,还是地图呢?下面一起来看看. ------------------------------------------------------------ 先看看地图有哪些事件,查看官网类参考,翻到事件: 大家看到这里的参数了麽? 其实,在点击物体时,通过这些参数就能够判断所点击的物体是什么了. 用marker举例: 先创建一个m

百度地图JavaScript API自定义覆盖物、自定义信息窗口增删时的显示问题

项目中,需求:在百度地图上实时画出车辆,并能点击车辆弹出信息框查看实时信息. 实现:通过不停的画覆盖物并删除掉.点击覆盖物时弹出信息窗口. 问题:删除掉覆盖物后信息窗也删除掉了.因为信息窗是建立在覆盖物的基础上的. 如何做到,我点击覆盖物弹出信息框,信息框能够持续显示实时信息,直到点击关闭? 做下笔记,包括了自定义覆盖物标识.自定义信息窗口.信息窗口显示实时信息.清除覆盖物时信息窗口的显示问题等等. 贴张效果图:     代码: <script type="text/javascript&

使用百度地图LBS创建自定义标注

<body> <div id="allmap"></div> <div class="sel_container" id="getCurrentPosition"> <strong >定位中...</strong> </div> <div id="r-result"></div> <script type=&quo

百度地图API制作自定义的放大缩小控件ZoomControlView

接着上一篇:上一篇博客讲的是用百度地图的API制作 Marker 和 自定义的弹出框,这一篇则是讲对于百度地图的放大缩小控制: 老规矩先来张截图: 接下来一大波代码来袭... package com.jsbtclient.cusViews; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdateFactory;

对于动态的网页布局百度地图静态图的布局

1.在页面添加百度地图的静态图片 <img style="margin:20px" width="280" height="140"  src="http://api.map.baidu.com/staticimage?width=280&height=140&zoom=10" /> 2.设置图片的自适应 修改图片的宽度 使其自适应屏幕的宽度  style="-webkit-user-se

Android studio 百度地图开发(6)Marker绑定事件、计算两点距离

email:[email protected] 开发环境:win7 64位,Android Studio,请注意是Android Studio,使用的导航SDK版本:3.1.0. 百度地图应用(1):Android studio 百度地图开发(1)配置工程.显示地图 百度地图应用(2):Android studio 百度地图开发(2)地图定位 百度地图应用(3):Android studio 百度地图开发(3)地图导航 百度地图应用(4):Android studio 百度地图开发(4)触摸选点

百度地图覆盖物多边形拖动,点击,生成新的覆盖物

<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><meta name="viewport" content="initial-scale=1.0, user-scalable=no" /><style type="text/css">