android实现百度地图点击覆盖物(MyLocationOverlay)弹出自定义弹出窗口
16lz
2021-01-25
一:增加覆盖物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;}@Overrideprotected 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
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(){@Overridepublic void onClick(View v) {new Message().showToast("点击查看", ShipActivity.this);}}); Button surebut = (Button)popview.findViewById(R.id.surebut); surebut.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {new Message().showToast("点击确定", ShipActivity.this);}}); pop.showPopup(popview, p2, 33); }
更多相关文章
- Android(安卓)getevent及sendevent分析
- Android控件之ImageButton
- android:onClick 的使用 xml调用Java代码
- Android(安卓)进入后台触发的事件,一般用于APP屏幕解锁
- [置顶] 使用Android(安卓)OpenGL ES 2.0绘图之六:响应触摸事件
- android自定义viewGroup常用方法
- Android实现ListView点击事件+SQLite数据存储
- Android状态栏上添加按钮(程序部分)
- Android(安卓)监听Home键