Erstellen Sie effizient eine Bitmap für Kartenmarkierungen

8

Ich benutze Android Google Maps v2 und ich erstelle Kartenmarkierungen und eine Bitmap zuweisen. Ich erhalte die Bitmap aus meinem Assets-Verzeichnis. Der Grund, warum ich sie von Assets herbekomme, ist, dass der Pfad, den ich verwende, um das "richtige" Symbol zu finden, dynamisch ist.

Meine Frage ist, sollte ich die zugrunde liegende Bitmap speichern, damit ich sie immer wieder verwenden kann. Ich lese: Ссылка

aber ehrlich gesagt war eine Menge von dort wirklich großes Beispielprojekt über meinen Kopf.

Sollte ich die Bitmap jedes Mal neu erstellen, wenn ich sie an einen Marker zur Erstellung übergeben muss, oder sollte ich jedes Bitmap (bis zu einem Grenzwert) in den Speicher lesen und für die Wiederverwendung speichern.

Jeder wird auf der Karte gezeichnet, also bin ich mir nicht sicher, ob ich ihn trotzdem wiederverwenden kann.

Beispiel: Ich habe 300 Markierungen auf der Karte mit 20 verschiedenen möglichen Bitmaps. I.E. etwa 15% sind das gleiche Markersymbol.

    
lostintranslation 15.04.2014, 00:05
quelle

1 Antwort

4

Da die Bitmap-Decodierung ziemlich teuer ist, würde ich definitiv empfehlen, mit Bitmap-Caching zu arbeiten. Besonders in Ihrem Fall, wenn die Anzahl der eindeutigen Bitmaps viel kleiner ist als die Anzahl der Marker auf einer Karte. Ein einfacher [LruCache][1] - basierter In-Memory-Cache würde problemlos funktionieren. Sie müssen nur vorsichtig sein, wie viel Speicher Sie für Ihren Cache verwenden.

Hier ist ein gutes Beispiel für die Implementierung von In-Memory-Cache: Ссылка

Nachverfolgung

Dachte nur ein bisschen mehr darüber nach und Sie können hier noch bessere Arbeit leisten. Anstatt Bitmaps zwischenzuspeichern, können Sie BitmapDescriptor für jede eindeutige Bitmap zwischenspeichern, die Sie haben. Auf diese Weise können Sie zusätzliche Leistung erzielen, indem Sie jedes Mal, wenn Sie eine Markierung erstellen müssen, Aufrufe von BitmapDescriptorFactory vermeiden.

AKTUALISIEREN

Hier ist was ich meine:

%Vor%     
Pavel Dudka 15.04.2014 00:52
quelle