我在谷歌地图API中使用MyLocationOverlay
,我不明白我应该传递给drawMyLocation
的画布。以下是我的一些代码:
import android.content.Context;
import android.graphics.Canvas;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
public class MyLocationDot extends MyLocationOverlay {
private MapView mMapView;
public MyLocationDot(Context context, MapView mapView) {
super(context, mapView);
mMapView = mapView;
}
protected void drawMyLocation(Canvas canvas) {
super.drawMyLocation(canvas, mMapView, getLastFix(), getMyLocation(), 0);
}
}
在地图活动的onCreate()中:
// my location
myLocation = new MyLocationDot(this, mapView);
myLocation.enableMyLocation();
myLocation.runOnFirstFix(new Runnable() {
public void run() {
myLocation.drawMyLocation(WhatCanvas??);
}
});
答案 0 :(得分:2)
除非我错了,否则你没有明确传递Canvas:你将叠加层传递给MapActivity,它会为你处理。
编辑:这样的事情。 mapView = (MapView) findViewById(R.id.map);
me = new MyLocationDot(this, mapView);
mapView.getOverlays().add(me);