Android Google Maps API v2 - how to change marker icon Android Google Maps API v2 - how to change marker icon android android

Android Google Maps API v2 - how to change marker icon


// latitude and longitudedouble latitude = 17.385044;double longitude = 78.486671;// create markerMarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Hello Maps");// Changing marker iconmarker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker_icon)));// adding markergoogleMap.addMarker(marker);

More Info


It's very simple :

new MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.icon))

In case you want the icon from a bitmap

new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(bitmap));


Use .icon()Add like this

Marker marker = map.addMarker(new MarkerOptions().position(currentLocation).icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_place_holder)));

Please note don't use vector Images, if you want to use vector use below code

private BitmapDescriptor bitmapDescriptorFromVector(Context context, @DrawableRes  int vectorDrawableResourceId) {    Drawable background = ContextCompat.getDrawable(context, R.drawable.ic_map_pin_filled_blue_48dp);    background.setBounds(0, 0, background.getIntrinsicWidth(), background.getIntrinsicHeight());    Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorDrawableResourceId);    vectorDrawable.setBounds(40, 20, vectorDrawable.getIntrinsicWidth() + 40, vectorDrawable.getIntrinsicHeight() + 20);    Bitmap bitmap = Bitmap.createBitmap(background.getIntrinsicWidth(), background.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);    Canvas canvas = new Canvas(bitmap);    background.draw(canvas);    vectorDrawable.draw(canvas);    return BitmapDescriptorFactory.fromBitmap(bitmap);}