varios studio markeroptions marcadores icono icon google example custom color cambiar agregar android android-fragments android-maps-v2

android - studio - ¿Cómo cambias programáticamente el ancho y alto de Google Maps v2(soporte Fragmento)?



marker color google maps (4)

Este es un ejemplo que utiliza el método onConfigurationChanged() :

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); setContentView(R.layout.main); findViewById(R.id.storefront_map).getLayoutParams().width = 400; }

¿Cómo cambias programáticamente el ancho y el alto de un com.google.android.gms.maps.SupportMapFragment? Me imagino que podrías envolverlo en un grupo de vista con match_parent, pero espero no anidar si no tengo que hacerlo (sinceramente, ni siquiera estoy seguro de que funcione).

<fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/storefront_map" class="com.google.android.gms.maps.SupportMapFragment" android:layout_width="match_parent" android:layout_height="250dp" />

Para dar contexto, me gustaría expandir el mapa de una altura a otra haciendo clic en el mapa.

mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { @Override public void onMapClick(LatLng latLng) { expandMap(); // not sure how to do this programatically. } });

Cualquier ayuda sería genial!


La forma más rápida (con menos líneas de código) encontré:

ViewGroup.MarginLayoutParams parms = (ViewGroup.MarginLayoutParams) rlLocation.getLayoutParams(); parms.bottomMargin = 100; parms.topMargin = 100;


Lo resolví en gran medida con la ayuda de la visibilidad de fragmentos de mapas de Google (API2) programáticamente .

mMapFragment = (SupportMapFragment) (getSupportFragmentManager() .findFragmentById(R.id.storefront_map)); ViewGroup.LayoutParams params = mMapFragment.getView().getLayoutParams(); params.height = 900; mMapFragment.getView().setLayoutParams(params);


No debes fijar la altura de un mapa ... configúralo de acuerdo con la altura y el ancho de la pantalla.

DisplayMetrics displaymetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int height = displaymetrics.heightPixels; ViewGroup.LayoutParams params = mMapFragment.getView().getLayoutParams(); params.height = height/2; mMapFragment.getView().setLayoutParams(params);