Yet another approach with Android Map API v2:
private void fixZoom() {
List<LatLng> points = route.getPoints(); // route is instance of PolylineOptions
LatLngBounds.Builder bc = new LatLngBounds.Builder();
for (LatLng item : points) {
bc.include(item);
}
map.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 50));
}