Uso de un diseño xml para un Google Map Marker para Android

Quiero usar un diseño y no un dibujo para mimarker Estoy usando Google Maps Api 2 para una aplicación de Android.

Me gusta esto:

  Marker m = googleMap
                        .addMarker(new MarkerOptions()
                                .position(LOC)
                                .snippet(user)
                                .title(name)
                                .icon(BitmapDescriptorFactory.fromResource(R.layout.map_marker)));

Sin embargo, parece que esto solo está diseñado para su uso desdedrawable carpeta.

Simplemente, qué imagen con un fondo donde puedo cambiar los colores según el tipo de marcador. Este es el diseño que quiero usar:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="#222"
    android:id="@+id/llMarker">

    <ImageView
        android:id="@+id/ivMarker"
        android:layout_marginTop="5dp"
        android:layout_width="40dp"
        android:layout_height="40dp" />

</LinearLayout>

Bastante básico ¿Cómo puedo usar esto como marcador? (¿o al menos replicar el resultado final al que me dirijo?)

Los documentos dicen que puedes usar esto:

fromResource (int resourceId)

Entonces asumí que un diseño podría funcionar.

ACTUALIZAR:

He tomado el concepto de la respuesta a continuación y revisé algunas cosas; esto todavía no está funcionando; sin errores. Simplemente no se mostrará la imagen.

        LayoutInflater inflater = (LayoutInflater) getActivity()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.map_marker, null);

        m = googleMap
                .addMarker(new MarkerOptions()
                        .position(LOC)
                        .snippet(user)
                        .title(name)
                        .icon(BitmapDescriptorFactory.fromBitmap(loadBitmapFromView(v))));

// método

  public static Bitmap loadBitmapFromView(View v) {

        if (v.getMeasuredHeight() <= 0) {
            v.measure(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
            Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
            Canvas c = new Canvas(b);
            v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
            v.draw(c);
            return b;
        }
        return null;
    }

Respuestas a la pregunta(4)

Su respuesta a la pregunta