android 百度地图 showpopup,android实现百度地图点击覆盖物(MyLocationOverlay)弹出自定义弹出窗口...

一:增加覆盖物MyLocationOverlay

MyLocationOverlay在普通的Overlay基础上进行了封装,可以更好的进行一个定位处理,例如方向。

要想点击MyLocationOverlay触发一个事件,就需要继承MyLocationOverlay重写dispatchTap方法

public class LocationOverlay extends MyLocationOverlay{

private ShipActivity sa;

public LocationOverlay(MapView arg0,ShipActivity _s) {

super(arg0);

this.sa = _s;

}

@Override

protected boolean dispatchTap() { //处理点击事件

sa.openPopupOverlay(this);

return super.dispatchTap();

}

}

这里在构造函数传了地图所在类的对象过来,以便调用地图类的相应方法,显示出来详细信息框PopupOverlay

把扩展的MyLocationOverlay增加到地图主类

private void addMyLocationOverlay()

{

myLocationOverlay = new LocationOverlay(mMapView,this);

new Message().showToast("come baby!", ShipActivity.this);

LocationData locData = new LocationData();

//手动将位置源置为天安门

locData.latitude =39.9022; //百度纬度坐标

locData.longitude = 116.404; //百度经度坐标

locData.direction = 50.0f; // GPS定位时方向角度 round:0-360

myLocationOverlay.enableCompass();//打开指南针

myLocationOverlay.setData(locData);

mMapView.getOverlays().add(myLocationOverlay);

mMapView.refresh();

}

PopupOverlay很方便可以增加一个自定义的view到对话框中,

当然也是可以进行view中按钮的事件处理,只需要先得到view在得到view中的按钮在绑定事件就可以了

public void openPopupOverlay(LocationOverlay _lo)

{

LocationData locData = _lo.getMyLocation();

PopupOverlay pop = new PopupOverlay(mMapView,new PopupClickListener() {

@Override

public void onClickedPopup(int index) {

new Message().showToast("茂茂",ShipActivity.this);

}

});

GeoPoint p2 = new GeoPoint((int) ( locData.latitude * 1E6), (int) (locData.longitude * 1E6));

//得到自定义view

View popview = LayoutInflater.from(this).inflate(

R.layout.popupoverlay, null);

//通过自定义view得到按钮并绑定事件

Button lookbut = (Button)popview.findViewById(R.id.lookbut);

lookbut.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

new Message().showToast("点击查看", ShipActivity.this);

}});

Button surebut = (Button)popview.findViewById(R.id.surebut);

surebut.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View v) {

new Message().showToast("点击确定", ShipActivity.this);

}});

pop.showPopup(popview, p2, 33);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值