Suponiendo que tenga el Lugar continuación, obtener el rodamiento haciendo:
float myBearing = location.getBearing();
Implementar la plantilla que va a utilizar y ItemizedOverlayOverlayItem. Tendrá que crear una subclase de OverlayItem para agregar la funcionalidad para rotar Drawable. Algo así como:
public BitmapDrawable rotateDrawable(float angle)
{
Bitmap arrowBitmap = BitmapFactory.decodeResource(context.getResources(),
R.drawable.map_pin);
// Create blank bitmap of equal size
Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true);
canvasBitmap.eraseColor(0x00000000);
// Create canvas
Canvas canvas = new Canvas(canvasBitmap);
// Create rotation matrix
Matrix rotateMatrix = new Matrix();
rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2);
// Draw bitmap onto canvas using matrix
canvas.drawBitmap(arrowBitmap, rotateMatrix, null);
return new BitmapDrawable(canvasBitmap);
}
Entonces todo lo que queda por hacer es aplicar este nuevo Disponibles a la OverlayItem. Esto se hace usando el método setMarker().
No debería extender [Overlay] (http://code.google.com/intl/sv-SE/android/add-ons/google-apis/reference/com/google/android/maps/Overlay. html) en su lugar, ya que [MyLocationOverlay] (http://code.google.com/intl/sv-SE/android/add-ons/google-apis/reference/com/google/android/maps/MyLocationOverlay.html) no ? – Jonas
Esto funciona bien para mí, pero tuve que cambiar canvas.getWidth(), canvas.getHeight() a canvas.getWidth()/2, canvas.getHeight()/2 para rotar alrededor del centro de la imagen (o se gira fuera de existencia) –
@Gwyn: respuesta actualizada, gracias – pheelicks