thanks @CommonsWare, you brought me in the right direction. Spent a rather bold turn with this. Javadoc at http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MyLocationOverlay.html is just wrong (or out of date) and gets confused with your brain where it says :
drawMyLocation
In addition, if the user's position moves near the edge of the screen, and we were provided with MapController in our constructor, we will proceed to re-record the new reading.
This is completely wrong. Firstly, there is no such constructor in the class. Secondly, drawMyLocation receives a call only when the current location is within the viewport or the screen moves. Therefore, if you get a new location, and you do not see the marker at this moment, it will not be redrawn. This is good, in general, but bad if you want to implement mc.animateTo in a method to maintain location orientation.
Thirdly, you do not need to pass the MapController to enable currentLocation, because you already have a mapView and get a controller from it.
So, I ended up writing my own class, which focused on the current location as soon as the location reaches the border of the mapView or off screen:
public class CurrentLocationOverlay extends MyLocationOverlay {
source share