I can suggest 2 options.
However, I strongly advise you to use the first one - much more classic and simple:
- Use Map Padding (recommended)
You can re-position any of the GoogleMap Controls by setting the Padding from the corners. In your case, I would set some padding from the top:
googleMap.setPadding(0, numTop, 0, 0); //numTop = padding of your choice 
It would also change the center position of the Map Camera accordingly, which is great for that kind of use case (adding a title / other floating controls).
- Disable the button and create one of your own (less recommended)
Disabling it will be easy:
googleMap.getUiSettings().setMyLocationButtonEnabled(false)
However, creating a new one would be trickier - mostly because it is harder to set a fully-functional one.
- I would Create a FloatingActionButtonthat looks like the one on the Google Maps application (example).
- You can get the Icon from here (called "My Location")
- Color the Fab in Material Grey 300 (maybe 400, can't remember at the moment)
 
- Define an onClick Event that would move the camera to the user's current location (you're going to have to use Location Service for this. - Sample: - //Acquire a reference to the system Location Manager
LocationManager locationManager = 
     (LocationManager)getSystemService(Context.LOCATION_SERVICE);
//Acquire the user's location
Location selfLocation = locationManager
     .getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
//Move the map to the user's location
LatLng selfLoc = new LatLng(selfLocation.getLatitude(), selfLocation.getLongitude());
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(selfLoc, 15);
googleMap.moveCamera(update);
 
- If you noticed, when you click the "My Location" button, it starts to track you and move the camera accordingly. In order to create that effect, you need to override - googleMap.onCameraMoveand- googleMap.onCameraIdle, and code your app so whenever the camera is idle, the map will continue to follow the user, and whenever the user moved the camera, it will stop.
 - Sample for - onCameraIdle:
 - //Acquire a reference to the system Location Manager
LocationManager locationManager = (LocationManager)
                    getSystemService(Context.LOCATION_SERVICE);
//Acquire the user's location
Location selfLocation = locationManager.getLastKnownLocation(LocationManager.PASSIVE_PROVIDER);
LatLng cameraLocation = googleMap.getCameraPosition().target;
float[] results = new float[3];
Location.distanceBetween(selfLocation.getLatitude(), selfLocation.getLongitude(), cameraLocation.latitude, cameraLocation.longitude, results);
if (results[0] < 30) //30 Meters, you can change that
    googleMap.moveCamera(...) //Move the camera to user's location