это действительно легко сделать с iconGenerator из библиотеки утилит Google Map:
val iconGenerator = IconGenerator(activity)
val window = activity.layoutInflater.inflate(R.layout.myinfo_window,null)
iconGenerator.setContentView(window)
iconGenerator.setBackground(activity.getDrawableCompat(R.drawable.mybox_bg))
return googleMap.addMarker(MarkerOptions()
.position(location)
.icon(BitmapDescriptorFactory.fromBitmap(iconGenerator.makeIcon())))
myinfo_window.xml тогда выглядит так:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:padding="13dp"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cool LOCATION"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</android.support.constraint.ConstraintLayout>
note: R.drawable.mybox_bg - это 9 патчей для рисования.