一:增加覆盖物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);    }

   


  

更多相关文章

  1. Android(安卓)getevent及sendevent分析
  2. Android控件之ImageButton
  3. android:onClick 的使用 xml调用Java代码
  4. Android(安卓)进入后台触发的事件,一般用于APP屏幕解锁
  5. [置顶] 使用Android(安卓)OpenGL ES 2.0绘图之六:响应触摸事件
  6. android自定义viewGroup常用方法
  7. Android实现ListView点击事件+SQLite数据存储
  8. Android状态栏上添加按钮(程序部分)
  9. Android(安卓)监听Home键

随机推荐

  1. Android参数设置: Preference
  2. Android组件的设计
  3. Android中Adapter类详解
  4. android实现简单的画画板
  5. Android(安卓)官方架构 --- Lifecycle分
  6. Flutter 动画使用
  7. android 修改系统各种类型的声音的默认值
  8. Android的EditText的光标选择问题
  9. Android实验法分析Touch事件传递
  10. android:largeHeap