有些参数不是为了框架的搭建,我们先不讲,为了从xml文件中直接引入我们的大致框架,用到layoutView = inflater.inflate(R.layout.balloon_map_overlay, layout);,根据文档中创建layout。说明下,title和snippet是xml文件中的两个控件,为了显示上面文字用的。父类构造结束,我们回到BusPopupView的构造函数中,
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); params.gravity = Gravity.NO_GRAVITY; addView(layout, params);
在子类中把刚才处理过的layout拿过来,继承父类的数据嘛,添加到视图中,此时BusPopupView的构造函数也结束了,那就返回了一个view嘛
BusPopupView view = new BusPopupView(getMapView().getContext(),getBalloonBottomOffset(),density,sb);
if (balloonView == null)
balloonView = createBalloonOverlayView();
这个view就是由ballooView接受。
GeoPoint point = currentFocussedItem.getPoint(); MapView.LayoutParams params = new MapView.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, point, MapView.LayoutParams.BOTTOM_CENTER); params.mode = MapView.LayoutParams.MODE_MAP;
//使得弹出框可见 balloonView.setVisibility(View.VISIBLE); mapView.addView(balloonView, params);
我们只讲显示弹出框的框架,所以上面点击以后触发的方法就不写了,至于其他方法以后再写吧。还是一嘛
把刚才的视图传进来的balloonView 设置一下参数,然后将这个视图加载mapview中。mapview是在构造函数中传进来的,就是主窗口中的mapview。