Marcador personalizado en google maps en android con vector icono de activo

¿Cómo podemos lograr un icono de marcador de mapa con el archivo de activos vectoriales , la forma en que google lo muestra así, mediante programación:

mapa

Actualizar:

map.addMarker(new MarkerOptions() .position(latLng) .icon(BitmapDescriptorFactory.fromResource(R.drawable.your_vector_asset)) .title(title); 

Esto no funciona cuando se trata de activos vectoriales. La razón principal para hacer la pregunta. El error con el código anterior:

Java.lang.IllegalArgumentException: Error al descodificar la imagen. La imagen proporcionada debe ser un mapa de bits.

Puede utilizar este método:

 private BitmapDescriptor bitmapDescriptorFromVector(Context context, int vectorResId) { Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorResId); vectorDrawable.setBounds(0, 0, vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight()); Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); vectorDrawable.draw(canvas); return BitmapDescriptorFactory.fromBitmap(bitmap); } 

Así que su código se verá así:

 map.addMarker(new MarkerOptions() .position(latLng) .icon(bitmapDescriptorFromVector(getActivity(), R.drawable.your_vector_asset)) .title(title); 

Prueba esto

 MarkerOptions op = new MarkerOptions(); op.position(src_latlng); Marker origin_marker = googleMap.addMarker(op); Bitmap bitmap = getBitmap(this,R.drawable.ic_map_marker); origin_marker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap)); 

GetBitmap

 public Bitmap getBitmap(Context context, int drawableId) { Drawable drawable = ContextCompat.getDrawable(context, drawableId); if (drawable instanceof BitmapDrawable) { return BitmapFactory.decodeResource(context.getResources(), drawableId); } else if (drawable instanceof VectorDrawable) { return getBitmap((VectorDrawable) drawable); } else { throw new IllegalArgumentException("unsupported drawable type"); } } 

Ic_map_marker.xml

 <vector android:height="32dp" android:viewportHeight="512.0" android:viewportWidth="512.0" android:width="32dp" xmlns:android="http://schemas.android.com/apk/res/android"> <path android:fillColor="#f32f00" android:pathData="M288,284.8V480l-64,32V284.8c10.3,2.1 21,3.3 32,3.3S277.7,286.9 288,284.8zM384,128c0,70.7 -57.3,128 -128,128c-70.7,0 -128,-57.3 -128,-128S185.3,0 256,0C326.7,0 384,57.3 384,128zM256,64c0,-17.7 -14.3,-32 -32,-32s-32,14.3 -32,32s14.3,32 32,32S256,81.7 256,64z"/> </vector> 
  • Recibiendo la pantalla ambigua del cielo mientras que carga el mapa de google
  • Agregar marcador en la ubicación tocada usando google map en android
  • Marcador v2 de la API de Google Maps de Google Maps con saltos de anclaje personalizados definidos cuando se arrastra
  • Cómo obtener la cuenta de los marcadores en la región visible en el mapa
  • Cómo ajustar el tamaño de los iconos de marcadores según el nivel de zoom en Android
  • Android abre InfoWindow en el marcador de clúster
  • Maps de Android ClusteredMarkers - no muestran unclustered?
  • Superposiciones de mapas eficaces en Google Maps de Google
  • Cómo mostrar el marcador de posición actual en el mapa en android?
  • Actualizar continuamente el marcador cuando cambia la ubicación en Android
  • Cómo borrar todos los marcadores en v2 google map?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.