Я нашел много вдохновения в этом посте и получил это решение:
Я создал этот метод:
private fun vectorToBitmap(@DrawableRes id: Int, @ColorInt color: Int, width: Int, height: Int): BitmapDescriptor? {
val vectorDrawable: Drawable? = ResourcesCompat.getDrawable(resources, id, null)
if(vectorDrawable != null) {
val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
vectorDrawable.setBounds(0, 0, canvas.width, canvas.height)
DrawableCompat.setTint(vectorDrawable, color)
vectorDrawable.setTintBlendMode(BlendMode.DARKEN)
vectorDrawable.draw(canvas)
return BitmapDescriptorFactory.fromBitmap(bitmap)
}
return null
}
Он используется так:
mMap.addMarker {
position(LatLng(mLastLocation.latitude, mLastLocation.longitude))
title("Path marker")
icon(vectorToBitmap(R.drawable.ic_bale, Color.parseColor("#FFCA22"), 44, 33))
//icon(bitmapDescriptorFromVector(this@DrivingActivity, R.drawable.ic_bale))
anchor(0.5F,0.5F)
flat(true)
}
Режим затемнения смешивает перекрашивание белых областей, оставляя черные области вне.