Ya no necesitas investigar más por todo internet porque llegaste al espacio exacto, contamos con la solución que buscas y sin liarte.
Solución:
Utilice el método GoogleMap.setPadding():
https://developers.google.com/maps/documentation/android/map#map_padding
@Override
public void onMapReady(GoogleMap map)
try
final ViewGroup parent = (ViewGroup) mMapView.findViewWithTag("GoogleMapMyLocationButton").getParent();
parent.post(new Runnable()
@Override
public void run()
try
Resources r = getResources();
//convert our dp margin into pixels
int marginPixels = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, r.getDisplayMetrics());
// Get the map compass view
View mapCompass = parent.getChildAt(4);
// create layoutParams, giving it our wanted width and height(important, by default the width is "match parent")
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(mapCompass.getHeight(),mapCompass.getHeight());
// position on top right
rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0);
rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
//give compass margin
rlp.setMargins(marginPixels, marginPixels, marginPixels, marginPixels);
mapCompass.setLayoutParams(rlp);
catch (Exception ex)
ex.printStackTrace();
);
catch (Exception ex)
ex.printStackTrace();
Sé que ha pasado mucho tiempo desde que se hizo la pregunta, pero me encontré con este problema hace unos días, arreglé el problema así:
try
assert mapFragment.getView() != null;
final ViewGroup parent = (ViewGroup) mapFragment.getView().findViewWithTag("GoogleMapMyLocationButton").getParent();
parent.post(new Runnable()
@Override
public void run()
try
for (int i = 0, n = parent.getChildCount(); i < n; i++)
View view = parent.getChildAt(i);
RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) view.getLayoutParams();
// position on right bottom
rlp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0);
rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP,0);
rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
rlp.rightMargin = rlp.leftMargin;
rlp.bottomMargin = 25;
view.requestLayout();
catch (Exception ex)
ex.printStackTrace();
);
catch (Exception ex)
ex.printStackTrace();
en este ejemplo puse la brújula en la esquina derecha. Debe asegurarse de que su mapFragment se cree cuando haga esto, le sugiero que ejecute su código en el método "onMapReady" de su MapFragment.
Te mostramos comentarios y puntuaciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)