À l'aide d'un fichier xml de Mise en page pour une Carte Google Marqueur pour Android

Je veux utiliser une mise en page et pas un drawable pour mon marker je suis avec l'aide de l'Api Google Maps 2 pour une application Android.

Comme ceci:

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

Cependant, il semble que cela est uniquement conçu pour une utilisation à partir de drawable dossier.

J'ai tout simplement ce qu'est une image avec un arrière-plan où je peux changer les couleurs basé sur le type de marqueur. C'est la mise en page que je veux utiliser:

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

Assez basique. Comment puis-je l'utiliser comme un marqueur? (ou au moins de reproduire le résultat final que je vais?)

Les documents de dire que vous pouvez utiliser ceci:

fromResource (int resourceId)

Donc, je suppose une mise en page peut travailler.

Mise à JOUR:

J'ai pris le concept de réponse ci-dessous et retravaillé certaines choses; cela ne fonctionne toujours pas; pas d'erreurs. Tout ne sera pas afficher l'image.

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

  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;
    }
Juste au cas où, avez-vous essayé l'autre méthode pour obtenir une image à partir de la vue? Cela peut ne pas fonctionner à moins que vous définissez explicitement l'image dimensions.
Voici ce que je fais maintenant (voir mise à jour du code); à l'aide de la méthode à partir de ce lien. J'ai en fait gonflé à une mauvaise mise en page une fois l'accident (une ligne de mise en page à partir d'un adapter getView() méthode). Il a ESSAYÉ de montrer que sur la carte. Alors j'ai utilisé de la bonne mise en page comme vu ci-dessus (avec et sans le ImageView et il ne montre RIEN). Donc je pense que le code est plus proche. Peut-être que le problème est du xml?
Si vous déboguez, faut-il aller à l'intérieur de l'instruction si?
En fait oui, et maintenant il est de travail. Pas sûr de ce qui s'est passé la première fois. Je vous marquera correcte. J'ai juste besoin de comprendre la partie sur la façon de modifier la mise en page de manière dynamique (LinearLayout couleur d'arrière-plan et ImageView src); mais je pense que je peux obtenir qu'un travail..
Comment avez-vous résolu le problème: j'ai le même problème: Avez-vous une chance de résoudre ce problème? si oui, comment? J'ai un problème similaire: stackoverflow.com/questions/25965799/xml-layout-to-map-marker

OriginalL'auteur KickingLettuce | 2014-07-12