这里有这么一个关系,BusOverlay继承于BalloonItemizedOverlay,这个又继承于ItemizedOverlay- ,对于BusOverlayItem,它继承与OverlayItem,首先
简单的写下创建两个对象,然后将这个BusOverlayItem传递到BusOverlay中。刚才说到BusOverlayItem的后面两个参数是点击时显示数据的地发,这里为什么用测试数据呢,我们待会再说。然后我们进入OnTop方法,在点击图层的时候,
我们先返回他父类的OnTop方法,这里我们要显示的弹出框用的是FrameLayout类型的对象,FrameLayout就是可以显示弹出框的那种样式的嘛,我们新建一个BalloonoverLayView - ,继承与FrameLayout,再创建一个BusPopupView,这个类的对象就是我们要显示的框实体。
在OnTop方法中,如果这个类对象是空的话,我们就去创建这样的一个实体。
在creatBalloonOverlayView方法中我们新建
参数我们先不管,这个类必然会调用BalloonoverLayView- 的构造函数,
在BalloonoverLayView- 的构造函数中,
有些参数不是为了框架的搭建,我们先不讲,为了从xml文件中直接引入我们的大致框架,用到layoutView = inflater.inflate(R.layout.balloon_map_overlay, layout);,根据文档中创建layout。说明下,title和snippet是xml文件中的两个控件,为了显示上面文字用的。父类构造结束,我们回到BusPopupView的构造函数中,
在子类中把刚才处理过的layout拿过来,继承父类的数据嘛,添加到视图中,此时BusPopupView的构造函数也结束了,那就返回了一个view嘛
BusPopupView view = new BusPopupView(getMapView().getContext(),getBalloonBottomOffset(),density,sb);
if (balloonView == null)
balloonView = createBalloonOverlayView();
这个view就是由ballooView接受。
我们只讲显示弹出框的框架,所以上面点击以后触发的方法就不写了,至于其他方法以后再写吧。还是一嘛
把刚才的视图传进来的balloonView 设置一下参数,然后将这个视图加载mapview中。mapview是在构造函数中传进来的,就是主窗口中的mapview。