Comment re-positionner mon bouton d'emplacement dans google mapv2 dans Android?

J'écris une application dans Android en utilisant Google map-V2 API. Je veux plus de la barre d'action Lay comme dans l'application Google Map. Et j'ai activé le bouton "Mon emplacement". Le problème est que mon bouton de localisation se trouve sous la barre d'action. Existe-t-il un moyen de replacer ce bouton? Je veux faire de l'application quelque chose de similaire à celui de Maps. Je suis nouveau sur Android, alors aidez-vous.

  • Android: EXCEPTION FATALE: AdWorker # 1 java.lang.NoSuchMethodError: java.io.IOException. <Init>
  • Re-lancement du bouton Activity on Home, mais ... seulement la première fois
  • L'écriture manuscrite de Tesseract avec la formation en dictionnaire
  • Qu'arrive-t-il à l'exécution de AsyncTasks lorsque l'Activité change?
  • Aspectj avec la bibliothèque Android
  • L'application s'écrase après la capture d'une image en utilisant des intentions
  • 6 Solutions collect form web for “Comment re-positionner mon bouton d'emplacement dans google mapv2 dans Android?”

    Vous ne pouvez pas modifier MyLocationButton de quelque manière que ce soit, mais l'activer et le désactiver. Il y a déjà une demande pour cela.

    N'hésitez pas à désactiver le bouton et à mettre en œuvre votre propre.

    Vous auriez quelque chose comme ça:

    mMap.getUiSettings().setMyLocationButtonEnabled(false); 

    Vous pouvez définir le rembourrage sur la carte.

    Cela a résolu le problème – recouvre la carte sur le dessus (j'ai utilisé 48 trempettes, mais vous pouvez superposer la barre d'action et ensuite obtenir la hauteur réelle de celle-ci ( ? Android: attr / actionBarSize ))

     mapFragment.getMap().setPadding(0, dpToPx(48), 0, 0); 

    (La fonction DP à PX provient de cette réponse SO )

    Vous pouvez repositionner facilement votre bouton de localisation

     View plusMinusButton = suppormanagerObj.getView().findViewById(1); View locationButton = suppormanagerObj.getView().findViewById(2); // and next place it, for exemple, on bottom right (as Google Maps app) RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) locationButton.getLayoutParams(); // position on right bottom rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0); rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 

    Chateau d'emplacement d'emplacement Vous pouvez également régler le rembourrage après avoir réglé l'alignement du bouton d'emplacement

     mMap.setPadding(0, 0, 30, 105); 

    J'ai résolu ce problème dans mon fragment de carte en replaçant mon bouton de localisation dans le coin inférieur droit de la vue en utilisant le code ci-dessous, voici mes Maps Activity.java: –

    Ajoutez ces lignes de code dans la méthode onCreate ()

      SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapView = mapFragment.getView(); mapFragment.getMapAsync(this); 

    Et voici le code onMapReady (): –

      @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; mMap.setMyLocationEnabled(true); // Add a marker in Sydney and move the camera LatLng sydney = new LatLng(-34, 151); mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); if (mapView != null && mapView.findViewById(Integer.parseInt("1")) != null) { // Get the button view View locationButton = ((View) mapView.findViewById(Integer.parseInt("1")).getParent()).findViewById(Integer.parseInt("2")); // and next place it, on bottom right (as Google Maps app) RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) locationButton.getLayoutParams(); // position on right bottom layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); layoutParams.setMargins(0, 0, 30, 30); } } 

    J'espère que cela résoudra votre problème. Merci.

    Utilisez simplement GoogleMap.setPadding (gauche, haut, droite, bas), ce qui vous permet d'indiquer des parties de la carte qui peuvent être obscurcies par d'autres vues. Le réglage du rembourrage reprend les contrôles de carte standard, et les mises à jour de la caméra utiliseront la région rembourrée.

    https://developers.google.com/maps/documentation/android/map#map_padding

    Au lieu des solutions findViewById, j'ai utilisé FindViewWithTag pour obtenir une référence au bouton. L'utilisation d'une chaîne semblait plus lisible et fiable pour moi.

      View myLocationButton = mMap.findViewWithTag("GoogleMapMyLocationButton"); RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) myLocationButton.getLayoutParams(); rlp.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0); rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.