Legen Sie das Bild von Drawable als Markierung in Google Map Version 2 fest
Lesezeit: 4 Minuten
NRahman
Ich verwende diesen Teil des Codes, um eine Markierung in a hinzuzufügen MapFragment in Google Maps Version 2.
MarkerOptions op = new MarkerOptions();
op.position(point)
.title(Location_ArrayList.get(j).getCity_name())
.snippet(Location_ArrayList.get(j).getVenue_name())
.draggable(true);
m = map.addMarker(op);
markers.add(m);
Ich möchte verschiedene Bilder aus meinem Drawable verwenden.
Tun BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.current_position_tennis_ball) und dann op.icon(icon);
– Muhammad Babar
5. August 2013 um 7:57 Uhr
Mr.Babar danke für Ihre Antwort, sie ist gut und hat für mich funktioniert … Sie posten sie als Antwort und ich werde sie akzeptieren … Nochmals vielen Dank.
– NRahman
5. August 2013 um 8:02 Uhr
@MuhammadBabar können wir das Bild im Titel weitergeben
– Amitharma
18. Februar 2014 um 7:22 Uhr
@muhammad Ich habe nachgesehen, aber ich kann das nicht … aber es kann Dun …..
– Amitharma
19. Februar 2014 um 4:53 Uhr
@muhammad Ich möchte den Titel im Bild weitergeben
– Amitharma
19. Februar 2014 um 4:54 Uhr
Muhammad Babar
So können Sie a einstellen Drawable Als ein Marker.
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.current_position_tennis_ball)
MarkerOptions markerOptions = new MarkerOptions().position(latLng)
.title("Current Location")
.snippet("Thinking of finding some thing...")
.icon(icon);
mMarker = googleMap.addMarker(markerOptions);
VectorDrawables und XML basierend Drawables tun nicht arbeite damit.
Dies ist richtig, obwohl die Verwendung des Wortes “beliebig” Drawable falsch ist. Dadurch können Sie nur BitmapDrawables festlegen. Sie können damit beispielsweise kein Drawable aus XML festlegen.
– John Leehey
13. August 2013 um 16:44 Uhr
Nun, Sie können – Sie müssen es nur in a malen Canvas Erste (drawable.draw(canvas)), dann entleeren Sie die Canvas zu einem Bitmap.
– Chris Broadfoot
14. August 2013 um 9:53 Uhr
Leute, davon habe ich jetzt wirklich keine Ahnung! Also lasst die Up-Votes entscheiden, wer Recht hat 🙂
– Muhammad Babar
15. August 2013 um 5:47 Uhr
Wäre eine gute Frage gewesen, wenn es um Drawable ginge, die auf Code-Behind geändert wurden, aber es ist derzeit eine Frage “Drücken Sie auf Autocomplete”.
– Léon Pelletier
5. Februar 2014 um 19:42 Uhr
vovahost
Die Antwort von @Lukas Novak zeigt nichts an, da Sie auch die Grenzen festlegen müssen Drawable.
Dies funktioniert für alle drawable. Hier ist ein voll funktionsfähiges Beispiel:
Mein erster Marker ist größer als die anderen gezeichnet, ich verwende genau den gleichen Code mit dir. Was könnte der Grund sein? Es ist unabhängig von der Bildquelle, die ich mit anderen ausprobiert habe.
– Wiedereinsteiger
2. August 2016 um 11:44 Uhr
Ich weiß nicht. Posten Sie einen Code: die drawable-XML oder die cose, die zum Erstellen des drawable verwendet wird, wenn Sie es programmgesteuert erstellen.
– vovahost
2. August 2016 um 11:56 Uhr
@vovahost Kannst du den Code für die circle_shape.xml posten. Aus irgendeinem Grund gibt circle.getIntrinsicHeight/width für mich 0 zurück
– Pdksock
4. August 2016 um 7:19 Uhr
Wenn Sie haben Drawable programmgesteuert erstellt (also haben Sie keine Ressource dafür), können Sie Folgendes verwenden:
Dann hast du BitmapDescriptorin die Sie übergehen können MarkerOptions.
Dadurch entstehen bei mir leere Bilder
– Anti-Erde
4. Dezember 2015 um 17:29 Uhr
Bitte beachten Sie das von @vovahost gepostete Beispiel für ein voll funktionsfähiges Beispiel dieses Ansatzes. Diese Antwort ist nicht ganz vollständig.
– AndroidDev
27. Juli 2016 um 18:17 Uhr
Krishna Sony
Wenn Sie verwenden vector drawable Verwenden Sie diese Erweiterung:
fun Context.bitmapDescriptorFromVector(vectorResId:Int): BitmapDescriptor {
val vectorDrawable = ContextCompat.getDrawable(this, vectorResId)
vectorDrawable!!.setBounds(0, 0, vectorDrawable.intrinsicWidth, vectorDrawable.intrinsicHeight)
val bitmap = Bitmap.createBitmap(vectorDrawable.intrinsicWidth, vectorDrawable.intrinsicHeight, Bitmap.Config.ARGB_8888)
vectorDrawable.draw(Canvas(bitmap))
return BitmapDescriptorFactory.fromBitmap(bitmap)
}
Und auf das Markierungssymbol setzen:
val markerOptions = MarkerOptions().position(latLng)
.title("Current Location")
.snippet("Thinking of finding some thing...")
.icon(bitmapDescriptorFromVector("Your icon resource id"))// call extension here
mMarker = googleMap.addMarker(markerOptions)
NepaliEntwickler
Verwenden Sie grundsätzlich Bitmap anstelle von drawable. Wenn Sie ein Drawable haben, konvertieren Sie es in Bitmap.
Hier ist ein Codebeispiel in Kotlin.
private fun placeNewMarker(whereToPlaceYourMarker: LatLng){
val pickupMarkerDrawable = resources.getDrawable(R.drawable.your_marker_drawable,null)
_pickupMarker = mMap?.addMarker(MarkerOptions()
.position(whereToPlaceYourMarker)
.draggable(true)
.title("My Marker")
.icon(BitmapDescriptorFactory.fromBitmap(pickupMarkerDrawable.toBitmap(pickupMarkerDrawable.intrinsicWidth, pickupMarkerDrawable.intrinsicHeight, null))))
}
Stimmen Sie zu, um zu zeigen, wie ein Vector Drawable als Markierungssymbol festgelegt wird
– Machado
27. August 2020 um 11:47 Uhr
Stimmen Sie zu, um zu zeigen, wie ein Vector Drawable als Markierungssymbol festgelegt wird
– Machado
27. August 2020 um 11:47 Uhr
12600000cookie-checkLegen Sie das Bild von Drawable als Markierung in Google Map Version 2 festyes
Tun
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.current_position_tennis_ball)
und dann op.icon(icon);– Muhammad Babar
5. August 2013 um 7:57 Uhr
Mr.Babar danke für Ihre Antwort, sie ist gut und hat für mich funktioniert … Sie posten sie als Antwort und ich werde sie akzeptieren … Nochmals vielen Dank.
– NRahman
5. August 2013 um 8:02 Uhr
@MuhammadBabar können wir das Bild im Titel weitergeben
– Amitharma
18. Februar 2014 um 7:22 Uhr
@muhammad Ich habe nachgesehen, aber ich kann das nicht … aber es kann Dun …..
– Amitharma
19. Februar 2014 um 4:53 Uhr
@muhammad Ich möchte den Titel im Bild weitergeben
– Amitharma
19. Februar 2014 um 4:54 Uhr