varios the studio puntos provided must marcar marcadores google failed custom agregar android marker android-maps-v2

the - infowindow google maps android



Establecer imagen de drawable como marcador en Google Map versión 2 (3)

Estoy usando esta parte del código para agregar un marcador en un MapFragment en la versión 2 de Google Map.

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);

Quiero usar diferentes imágenes de mi dibujable. Cualquier ayuda será apreciada.


Así es como puede establecer un Drawable como 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 y VectorDrawables basados ​​en XML no funcionan con esto.


La respuesta de @Lukas Novak no muestra nada porque también debe establecer los límites en Drawable .
Esto funciona para cualquier drawable. Aquí hay un ejemplo completamente funcional:

public void drawMarker() { Drawable circleDrawable = getResources().getDrawable(R.drawable.circle_shape); BitmapDescriptor markerIcon = getMarkerIconFromDrawable(circleDrawable); googleMap.addMarker(new MarkerOptions() .position(new LatLng(41.906991, 12.453360)) .title("My Marker") .icon(markerIcon) ); } private BitmapDescriptor getMarkerIconFromDrawable(Drawable drawable) { Canvas canvas = new Canvas(); Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); canvas.setBitmap(bitmap); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return BitmapDescriptorFactory.fromBitmap(bitmap); }


circle_shape.xml

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <size android:width="20dp" android:height="20dp"/> <solid android:color="#ff00ff"/> </shape>


Si tiene Drawable creado programáticamente (para que no tenga ningún recurso), puede usar esto:

Drawable d = ... // programatically create drawable Canvas canvas = new Canvas(); Bitmap bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); canvas.setBitmap(bitmap); d.draw(canvas); BitmapDescriptor bd = BitmapDescriptorFactory.fromBitmap(bitmap);

Luego tiene BitmapDescriptor , que puede pasar a MarkerOptions .