Mapa de Google en android, muestra en tamaño pequeño mapview

Quiero mostrar la ubicación en la vista del mapa y el tamaño del mapa debe ser 200X200. Intenté cargar el mapa en mapview pero su no exhibir correctamente después de golpear ligeramente en el indicador de dirección 2 a 3 veces su exhibir el mapa correcto pero no moviéndose.

mapa

Pero cuando utilizo el tamaño completo de la pantalla para mostrar el mapa sin cambiar ningún código es la carga correcta. ¿Cómo puedo mostrar la misma vista pequeña iin?

Mapa código-

static GoogleMap map; private MapView mapView; MapsInitializer.initialize(getApplicationContext()); switch (GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()) ) { case ConnectionResult.SUCCESS: //Toast.makeText(getActivity(), "SUCCESS", Toast.LENGTH_SHORT).show(); mapView = (MapView)findViewById(R.id.map); mapView.onCreate(savedInstanceState); // Gets to GoogleMap from the MapView and does initialization stuff if(mapView!=null) { map = mapView.getMap(); map.getUiSettings().setMyLocationButtonEnabled(false); map.setMyLocationEnabled(true); CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(location, 10); map.animateCamera(cameraUpdate); map.setMapType(GoogleMap.MAP_TYPE_NORMAL); } break; case ConnectionResult.SERVICE_MISSING: //Toast.makeText(getActivity(), "SERVICE MISSING", Toast.LENGTH_SHORT).show(); break; case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED: //Toast.makeText(getActivity(), "UPDATE REQUIRED", Toast.LENGTH_SHORT).show(); break; default: Toast.makeText(getApplicationContext(), GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()), Toast.LENGTH_SHORT).show(); } CameraPosition cameraPosition = new CameraPosition.Builder() .target(location).zoom(10).bearing(0) // Sets the orientation of the camera to east .tilt(70) // Sets the tilt of the camera to 30 degrees .build(); // Creates a CameraPosition from the builder map.setBuildingsEnabled(true); map.setMyLocationEnabled(true); map.setMapType(GoogleMap.MAP_TYPE_NORMAL); map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 

Solución – Hecho con fragmento –

Map_screen.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <fragment android:id="@+id/mapfragment" android:layout_width="wrap_content" android:layout_height="200dp" android:layout_alignParentTop="true" android:layout_gravity="center_horizontal" class="com.google.android.gms.maps.SupportMapFragment" /> <TextView android:id="@+id/reg_office_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/mapfragment" android:layout_gravity="center_horizontal" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" android:gravity="center" android:text="@string/tata_auto" android:textColor="@color/tatablue" android:textSize="18sp" /> </RelativeLayout> 

Código java

 public class MapFragment extends Fragment { private View view; public GoogleMap map; private Location location; private LatLng mAddress1; public static boolean inMap=false; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { // TODO Auto-generated method stub view= inflater.inflate(R.layout.contact_map, container, false); setMapView(); return view; } private void setMapView(){ CurrentLocation mCurrentLoc=new CurrentLocation(getActivity()); location = CurrentLocation.locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); if (location != null) { mCurrentLoc.onLocationChanged(location); } else { mCurrentLoc.onLocationChanged(location); } //class="com.google.android.gms.maps.SupportMapFragment" map = ((SupportMapFragment)getActivity().getSupportFragmentManager().findFragmentById(R.id.mapfragment)).getMap(); CameraPosition cameraPosition = new CameraPosition.Builder() .target(mAddress1).zoom(8).bearing(0) // Sets the orientation of the camera to east .tilt(30) // Sets the tilt of the camera to 30 degrees .build(); // Creates a CameraPosition from the builder map.setBuildingsEnabled(true); map.setMyLocationEnabled(true); map.setMapType(GoogleMap.MAP_TYPE_NORMAL); map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); } } 

MAddress1 es latitud y longitud de su ubicación.

He probado el siguiente código y no hay problemas con el mapa para el tamaño 200dp x 200dp

Diseño:

  <fragment android:id="@+id/map" class="com.google.android.gms.maps.SupportMapFragment" android:layout_width="200dp" android:layout_height="200dp" /> </LinearLayout> 

Fragmento:

 public class LocationFragment extends Fragment { GoogleMap googleMap; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_location, container, false); googleMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); MapsInitializer.initialize( getActivity().getApplicationContext() ); googleMap.addMarker(new MarkerOptions() .position( new LatLng( 38.7222524, -9.139336599999979) .title("MyLocation") .icon(BitmapDescriptorFactory .fromResource(R.drawable.ic_mobileedge_navpoint))); // Move the camera instantly with a zoom of 15. googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom( new LatLng( 38.7222524, -9.139336599999979), 15)); // Zoom in, animating the camera. googleMap.animateCamera(CameraUpdateFactory.zoomTo(12), 1000, null); return v; } } 

Veo que está utilizando MapView en lugar de MapFragment. En Google Maps V2, la antigua clase MapView com.google.android.maps.MapView está obsoleta. Así que asegúrate de usar el MapView correcto tanto en tu código Java como en el diseño XML que debería ser

 import com.google.android.gms.maps.MapView; 

y

 <com.google.android.gms.maps.MapView android:id="@+id/map_view" android:layout_width="your_width" android:layout_height="your_height" /> 

También asegúrese de haber realizado todos los cambios necesarios en AndroidManifest.xml, que incluye definir la API_KEY para Maps V2 como se describe aquí .

Aparte de esto, hay una cosa importante que tienes que hacer si estás usando MapView en lugar de un MapFragment, tienes que llamar a las funciones sobrepuestas de MapView explícitamente dentro de las sustituciones correspondientes de la actividad residente como,

 public class YourMapActivity extends Activity { MapView mMapView; GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* Your OnCreate with Map Initialization */ mMapView = (MapView) findViewById(R.id.map_view); mMapView.onCreate(Bundle.EMPTY); mMap = mMapView.getMap(); MapsInitializer.initialize(this); } @Override protected void onResume() { mMapView.onResume(); super.onResume(); } @Override protected void onPause() { mMapView.onPause(); super.onPause(); } @Override protected void onDestroy() { mMapView.onDestroy(); super.onDestroy(); } @Override public void onLowMemory() { mMapView.onLowMemory(); super.onLowMemory(); } } 

Esto debería ser suficiente para cargar un MapView de tamaño personalizado en su Acitivity. También puede utilizar las siguientes funciones para adaptarlas a sus necesidades.

 mMapView.setClickable(false); mMap.getUiSettings().setMyLocationButtonnabled(false); mMap.getUiSettings().setZoomControlsEnabled(false); mMap.getUiSettings().setCompassEnabled(false); mMap.getUiSettings().setZoomGesturesEnabled(false); mMap.getUiSettings().setScrollGesturesEnabled(false); mMap.setMyLocationEnabled(true); 
  • Pantalla azul en Android Google Maps
  • Mostrar la información personalizada de InfoWindow para Android Maps Utility Library for Android
  • Buscar lugares dentro de una ciudad en Google Places Apis
  • Cómo encontrar el nivel de zoom basado en círculo dibujar en el mapa
  • Android Maps: Error de instalación: INSTALL_FAILED_MISSING_SHARED_LIBRARY
  • MapView en ExpandableListView
  • Cómo obtener una clave de versión de Google Maps API v2
  • Geo: intención con un placeid
  • ¿Cuál es la forma sugerida de implementar superposiciones en v2 de la API de Google Maps para Android?
  • Dibujo libremente por los dedos en Google Map
  • ¿Cómo sé que el mapa está listo para utilizarse cuando se utiliza el SupportMapFragment?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.