在Android中添加图层的方法,一般来说是定义一个overlay对象,比如说属于MyOverlay类,MyOverlay是
继承于ItemizedOverlay<Item>的,然后定义一个overlayitem,继承于OverLayItem,在使用的时候就是新建一个overlayitem对象,overlayitem =new overlayitem (GeoPoint point, String directiondir, String routetag),point包含了这个点的经纬度,后面两个数据就是你在
点击这个点的时候可以
显示的数据,当然至于你想怎么显示就看每个人不同的想法了。overlay在定义的时候会传入一个图片参数,以便显示,然后就是把overlayitem对象加到overlay中,在点击图片的时候会调用MyOverlay中的OnTop方法。至于我们要显示的两个信息,就是overlayitem对象中的后两个参数,我们可以根据点击时得到的index来创建一个item,然后调用item的gettitle getsnippet方法来获得两个参数。下面是添加自定义图层,不是简单的显示一个图标,但是这次这个也只是一个框架,还没完全实现这里有这么一个关系,BusOverlay继承于BalloonItemizedOverlay<BusOverlayItem>,这个又继承于ItemizedOverlay<Item>,对于BusOverlayItem,它继承与OverlayItem,首先BusOverlay BusOverlay = new BusOverlay(drawable, this, stoptagList,mapView,density,style) BusOverlayItem overlayitem = new BusOverlayItem(point,"测试数据","测试数据") BusOverlay.addOverlay(overlayitem) 简单的写下创建两个对象,然后将这个BusOverlayItem传递到BusOverlay中。刚才说到BusOverlayItem的后面两个参数是点击时显示数据的地发,这里为什么用测试数据呢,我们待会再说。然后我们进入OnTop方法,在点击图层的时候,boolean ret=BusOverlay.super.onTap(index) 我们先返回他父类的OnTop方法,这里我们要显示的d出框用的是FrameLayout类型的对象,FrameLayout就是可以显示d出框的那种样式的嘛,我们新建一个BalloonoverLayView <Item extends OverlayItem>,继承与FrameLayout,再创建一个BusPopupView,这个类的对象就是我们要显示的框实体。protected BalloonoverLayView<Item>balloonView//矩形提示框 在OnTop方法中,如果这个类对象是空的话,我们就去创建这样的一个实体。if (balloonView == null) balloonView = createBalloonOverlayView() 在creatBalloonOverlayView方法中我们新建BusPopupView view = new BusPopupView(getMapView().getContext(),getBalloonBottomOffset(),density,sb) 参数我们先不管,这个类必然会调用BalloonoverLayView<Item>的构造函数,在BalloonoverLayView<Item>的构造函数中,protected LinearLayout layoutprivate TextView titleprivate TextView snippetprotected View layoutViewprotected float densityprivate StringBuffer sb public BalloonoverLayView(Context context, int balloonBottomOffset,float density,StringBuffer sb) { super(context) this.density = density this.sb=sb setPadding(10, 0, 10, balloonBottomOffset)//设置位置 layout = new LinearLayout(context) layout.setVisibility(VISIBLE) LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE) //这一步先加载了d出框的布局 layoutView = inflater.inflate(R.layout.balloon_map_overlay, layout) //d出框中的两行信息,可见R.id.balloon_item_title框图中 title = (TextView) layoutView.findViewById(R.id.balloon_item_title) snippet = (TextView) layoutView.findViewById(R.id.balloon_item_snippet) System.out.println("布局加载都好了") } 有些参数不是为了框架的搭建,我们先不讲,为了从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 //使得d出框可见 balloonView.setVisibility(View.VISIBLE) mapView.addView(balloonView, params) 我们只讲显示d出框的框架,所以上面点击以后触发的方法就不写了,至于其他方法以后再写吧。还是一嘛把刚才的视图传进来的balloonView 设置一下参数,然后将这个视图加载mapview中。mapview是在构造函数中传进来的,就是主窗口中的mapview。不用设置。打开的时候,有提示啊。你选择下就行了。
把下面那个勾选上就行了。
那你就下一个天天动听或多米音乐。很方便的。
你的意思是你打开音乐的时候,不是默认用天天静听播放吗?
那提示的是什么?
Android系统程序是通过默认记住来关联文件的。
Android中打开应用的时候,如果选择了始终以后,每次都会使用默认的来启动,如果需要修改默认打程序,需要按以下步骤清除,以下为清除浏览器为例:
1.在手机待机桌面点击 Menu键,然后选择 设置 。
2.点击 应用程序。
3.点击管理应用程序。
4.找到并点击已经设置为默认程序的浏览器。
5.点击 清除默认值 ,即可清除Android的默认打开程序。
评论列表(0条)