androidoverride
⑴ android overlay是什么意思
覆盖是用来向MapView中添加注释和单击处理的方法。每一个覆盖都可以直接在画布上绘制2D原语,包括文本、直线、图片和各种形状,之后它们会被用来覆盖到Map View之上。
可以向一个地图中添加多个覆盖。分配给一个Map View的所有覆盖都是作为层而添加的,较新的层可能会模糊较旧的层。用户单击是通过栈进行传递的,直到它们被覆盖处理,或者作为Map View本身的单击进行注册为止。
1. 创建新的覆盖
每一个覆盖都是一块具有透明背景的画布,可以把它作为一个图层放在Map View的上面,并用它来处理地图触摸事件。
要添加新的覆盖,需要通过扩展Overlay来创建一个新的类。然后重写draw方法来绘制希望添加的注释,并重写onTap方法来对用户的单击做出反应(通常是当用户单击由这个覆盖所添加的注释时)。
下面的代码段显示了创建新的覆盖的框架,它可以用来绘制注释和处理用户单击:
Java代码:
1. import android.graphics.Canvas;
2. import com.google.android.maps.MapView; 3. import com.google.android.maps.Overlay; 4.
5. public class MyOverlay extends Overlay { 6. @Override
7. public void draw(Canvas canvas, MapView mapView, boolean shadow) {
8. if (shadow == false)
9. { [ ... Draw annotations on main map layer ... ] }
10.else { [ ... Draw annotations on the shadow layer ... ] } 11.}
12.@Override
13.public boolean onTap(GeoPoint point, MapView mapView) { 14.// 如果这个覆盖处理了屏幕接触,就返回true return false; 15.} 16. 17.}
⑵ android开发中的override/implement methods
override/implement methods 是寻找 重载的方法,就是它的父类或者 它的接口 有的方法 ,一般都是一个完整的方法 比如: public void onCreate(){ },
而setOnClickListener() 只是一个控件对象的方法,需要一个对象去调用它 比如 button.setOnClickListener()
这两个是不同的
不太好说,你慢慢就会理解的