2012-09-11 3 views
0

MyLocationOverlay의 사용자 정의 마커에 그림자를 추가하고 싶습니다. 이것을 사용해 보았습니다 this question :안드로이드 - 사용자 정의 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); 
} 

을 나는이 사람을 도움이되기를 바랍니다.