com.mapbar.android.maps
Class Overlay

java.lang.Object
  extended by com.mapbar.android.maps.Overlay
Direct Known Subclasses:
ItemizedOverlay, MyLocationOverlay

public abstract class Overlay
extends java.lang.Object

Overlay是一个基类,它表示可以显示在地图上方的覆盖overlay。添加一个overlay时,从这个基类派生出一个子类,创建一个实例,然后把它加入到一个列表中。这个列表通过调用 MapView.getOverlays()得到。

为了允许用户触摸去对齐一个点,子类应当实现 Overlay.Snappable 接口。


Nested Class Summary
static interface Overlay.Snappable
           Overlay的接口定义。其中overlay的各项可被对齐(例如,当用户触发一个缩放时,这个接口被调用允许用户把缩放对齐到一个兴趣点。
 
Field Summary
protected static float SHADOW_X_SKEW
           在透视图里创建标记点阴影的X偏移量。
protected static float SHADOW_Y_SCALE
           在透视图里创建标记点阴影的Y刻度值。
 
Constructor Summary
Overlay()
           
 
Method Summary
 void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow)
           在地图上绘制一个Overlay。
 boolean draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow, long when)
           针对于动画overlay的绘制调用。
protected static void drawAt(android.graphics.Canvas canvas, android.graphics.drawable.Drawable drawable, int x, int y, boolean shadow)
           在一个偏移量地方绘制一个Drawable的方便方法。
 boolean onKeyDown(int keyCode, android.view.KeyEvent event, MapView mapView)
           处理一个按下按键事件。
 boolean onKeyUp(int keyCode, android.view.KeyEvent event, MapView mapView)
           处理一个按键放开事件。
 boolean onTap(GeoPoint p, MapView mapView)
           处理一个“点击”事件。
 boolean onTouchEvent(android.view.MotionEvent e, MapView mapView)
           处理一个触摸事件。
 boolean onTrackballEvent(android.view.MotionEvent event, MapView mapView)
           处理一个跟踪球(trackball)事件。
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SHADOW_X_SKEW

protected static final float SHADOW_X_SKEW
在透视图里创建一个标记阴影的X偏移量。

See Also:
Constant Field Values

SHADOW_Y_SCALE

protected static final float SHADOW_Y_SCALE
在透视图中创建一个标记阴影的Y刻度值。

See Also:
Constant Field Values
Constructor Detail

Overlay

public Overlay()
Method Detail

drawAt

protected static void drawAt(android.graphics.Canvas canvas,
                             android.graphics.drawable.Drawable drawable,
                             int x,
                             int y,
                             boolean shadow)
在某个偏移位置画一个Drawable的便捷方法。x和y是像素坐标。你可以调用MapView.getProjection()把经纬度变换成准确的屏幕坐标,其中MapView 是从 draw(Canvas, MapView, boolean)传递过来的。

Parameters:
shadow - 如果为true, 只绘制drawable的阴影。否则,绘制drawable自身。

onTouchEvent

public boolean onTouchEvent(android.view.MotionEvent e,
                            MapView mapView)
处理一个触摸事件。默认情况下没有任何行为返回false。

Parameters:
e - 动作事件。
mapView - 产生触摸事件的MapView 。
Returns:
如果overlay处理了点击事件,返回true。

onTrackballEvent

public boolean onTrackballEvent(android.view.MotionEvent event,
                                MapView mapView)
处理一个跟踪球(trackball)事件。默认不做处理且返回false。

Parameters:
event - 动作事件。
mapView - 产生trackball事件的MapView。
Returns:
如果点击事件被这个overlay处理,返回true。

onKeyDown

public boolean onKeyDown(int keyCode,
                         android.view.KeyEvent event,
                         MapView mapView)
处理一个按键被按下的事件。默认情况下,不做任何动作,且返回false。

Parameters:
keyCode - 按键代码。
event - 按键事件。
mapView - 产生按键事件的MapView
Returns:
如果overlay处理这个点击事件,返回true。

onKeyUp

public boolean onKeyUp(int keyCode,
                       android.view.KeyEvent event,
                       MapView mapView)
处理一个按键放开事件。默认不做任何动作且返回false。

Parameters:
keyCode - 键值
event - 按键事件
mapView - 产生按键事件的MapView
Returns:
如果overlay处理了这个点击事件,返回true。

onTap

public boolean onTap(GeoPoint p,
                     MapView mapView)
处理一个“点击”事件。这个事件或是一个在地图任何地方的触屏点击,或是在地图中心的跟踪球点击。默认不做任何动作,且返回false。

Parameters:
p - 被点击的位置点。
mapView - 产生点击事件的MapView 。
Returns:
如果Overlay处理了这个点击事件,返回true。

draw

public void draw(android.graphics.Canvas canvas,
                 MapView mapView,
                 boolean shadow)
在地图上绘制overlay。这个方法首先被shadow=true,活动的overlay调用去放置阴影层,然后被那些shadow=false的overlay调用。默认不绘制任何东西。

Parameters:
canvas - 待绘制的画布。注意,这个绘制或许已经被做了某种变换,所以维持其其原样。
mapView - 请求绘制的MapView.使用MapView.getProjection() 在屏幕像素坐标和经纬度坐标直接变换。
shadow - 如果为true,则绘制阴影层。否则,绘制overlay的内容。

draw

public boolean draw(android.graphics.Canvas canvas,
                    MapView mapView,
                    boolean shadow,
                    long when)
专门绘制动画overlay的调用。默认情况下,通过 draw(Canvas, MapView, boolean)调用,且返回false。

Parameters:
canvas - 带绘制的画布。注意画布可能已经被做了某种变换,所以维持其原样。
mapView - 请求绘制的MapView. 使用MapView.getProjection()在屏幕坐标和经纬度坐标之间做变换。
shadow - 如果为true, 绘制阴影层。否则,绘制overlay的内容。
when - 绘制的时间戳。
Returns:
True if you need to be drawn again right away; false otherwise. Default implementation returns false.