我想为MyLocationOverlay的自定义标记添加阴影。我使用this question尝试了这个:
@Override
protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) {
mapView.getProjection().toPixels(myLocation, currentPoint);
canvas.drawBitmap(markerBitmap, currentPoint.x - this.markerBitmap.getWidth()/2, currentPoint.y - this.markerBitmap.getHeight(), null);
}
@Override
public synchronized boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
if (getLastFix() == null) {
return super.draw(canvas, mapView, shadow, when);
}
if (markerDrawable != null) {
GeoPoint lastFixGeoPoint = new GeoPoint((int)(getLastFix().getLatitude() * 1E6), (int)(getLastFix().getLongitude() * 1E6));
mapView.getProjection().toPixels(lastFixGeoPoint, currentPoint);
drawAt(canvas, markerDrawable, currentPoint.x, currentPoint.y, shadow);
} else if (getMyLocation() != null) {
drawMyLocation(canvas, mapView, getLastFix(), getMyLocation(), when);
}
return super.draw(canvas, mapView, shadow, when);
}
我错过了什么? 提前谢谢。
答案 0 :(得分:0)
最后,我可以为MyLocationOverlay的自定义标记绘制阴影,其中包含以下内容:
@Override
protected void drawMyLocation(Canvas canvas, MapView mapView, Location lastFix, GeoPoint myLocation, long when) {
mapView.getProjection().toPixels(myLocation, currentPoint);
canvas.drawBitmap(shadowBitmap, currentPoint.x - this.markerBitmap.getWidth()/2, currentPoint.y - this.markerBitmap.getHeight(), null);
canvas.drawBitmap(markerBitmap, currentPoint.x - this.markerBitmap.getWidth()/2, currentPoint.y - this.markerBitmap.getHeight(), null);
}
我希望这有助于某人。