wake-up-neo.net

Google Android-Karten api v2 Markierungs-Titel immer anzeigen

Ich habe eine google maps v2 in meiner Android-Anwendung und einige Markierungen darauf. Wenn der Benutzer auf eine dieser Markierungen klickt, erscheint ein Titel-Popup. Wie kann ich diese Titel immer ohne User-Klick anzeigen lassen?

34
Sercan Ozdemir
41
Anthony

Sowas in der Art:

googleMap.addMarker(new MarkerOptions()
    .position(new LatLng(latitude, longitude))
    .title("Your position")).showInfoWindow();
41
José De la O

Du kannst das:

Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text"));
marker.showInfoWindow();
12
Khalil_Java

Da ich Markentitel auf der Karte um die Markierungen herum angezeigt habe, funktionierte keine der Lösungen, die ich im Internet gefunden hatte, für mich. Deshalb habe ich die Ärmel hochgekrempelt und diese Bibliothek erstellt, die dieses Problem für mich löst. Hoffentlich hilft sie auch anderen:

https://github.com/androidseb/Android-google-maps-floating-marker-titles

Hier ist eine Vorschau, wie es funktioniert:

 preview

4
androidseb

Ich bin nicht so gut in einer Implementierung, aber hier ist mein Code:

public BitmapDescriptor getBitmapFromView(String title) {
        View view = LayoutInflater.from(activity.getApplicationContext()).inflate(R.layout.marker_tooltip, null);
        ((TextView) view.findViewById(R.id.tooltips_title)).setText(title);

        //Get the dimensions of the view. In my case they are in a dimen file
        int width = activity.getResources().getDimensionPixelSize(R.dimen.tooltips_width);
        int height = activity.getResources().getDimensionPixelSize(R.dimen.tooltips_height);

        int measuredWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY);
        int measuredHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY);

        view.measure(measuredWidth, measuredHeight);
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());

        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);

        view.draw(canvas);

        return BitmapDescriptorFactory.fromBitmap(bitmap);
    }

...
marker.setIcon(getBitmapFromView(marker.getTitle()));
...

Ich habe dies in einem Fragment in einer Karten-App mit einigen Variationen implementiert. Beispielsweise mit einem benutzerdefinierten Infofenster und einigen Ereignissen auf der Karte, deren Implementierung jedoch erforderlich war, um alle Markentitel gleichzeitig anzuzeigen. Lass mich wissen, ob es auch für dich hilfreich war

Die ACTIVITY von "activity.getResources (). getDimensionPixelSize (R.dimen.tooltips_width)" ist eine Eigenschaft im Fragment

1
Carlos Espinoza

Vielleicht komme ich zu spät, um diesen zu beantworten, aber der folgende Code funktioniert für mich:

// füge diese Bibliothek hinzu

implementation 'com.google.maps.Android:android-maps-utils:0.5'

// Dann verwende die Methode unten

public void makersMaker(GoogleMap googleMap){
    IconGenerator iconFactory = new IconGenerator(this);                            
    Marker marker1 = googleMap.addMarker(new MarkerOptions().position(newLatLng(-1.3177336,36.8251902));                  
    marker1.setIcon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon("Marker 1")));
    Marker marker2 = googleMap.addMarker(new MarkerOptions().position(new LatLng(-1.2857399,36.8214088)));                
    marker2.setIcon(BitmapDescriptorFactory.fromBitmap(iconFactory.makeIcon("Marker 2")));
}
0
Ben