Try using moveCamera and animateCamera ...
mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10)); LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude); mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng));
moveCamera will move directly to this place, and animateCamera will provide a moving effect. They are linear in nature, so each can happen after the other, however, their separation, as I did above, will provide the potential effect that you are looking for.
If you are trying to see the actual movement of both calls in the user interface, you will need to register the completion of the animation for the callback message as necessary.
source share