2012-09-11 48 views
0

我想为MyLocationOverlay的自定义标记添加阴影。我试过这个使用this questionAndroid - 如何在自定义MyLocationOverlay中添加阴影

@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

最后,我可以画一个阴影,为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); 
} 

我希望这可以帮助别人。