Использование макета XML для маркера карты Google для Android

Я хочу использовать макет, а не рисовать для моегоmarker Я использую с Google Maps Api 2 для приложения Android.

Как это:

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

Тем не менее, кажется, что это только для использования сdrawable папка.

Я просто какое изображение с фоном, где я могу менять цвета в зависимости от типа маркера. Это макет, который я хочу использовать:

<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>

Довольно простой. Как я могу использовать это как маркер? (или хотя бы повторить конечный результат, к которому я иду?)

Документы говорят, что вы можете использовать это:

fromResource (int resourceId)

Поэтому я предположил, что макет может работать.

ОБНОВИТЬ:

Я взял концепцию из ответа ниже и переработал некоторые вещи; это все еще не работает; ошибок нет. Просто не покажу изображение.

        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))));

// метод

  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;
    }

Ответы на вопрос(4)

Ваш ответ на вопрос