Mapas de Android: uso de un diseño como elemento de superposición

Estoy usando mapas en Android proporcionados por MapQuest, pero implementado de la misma manera que Google Maps por lo que la misma pregunta se aplica.

Para el elemento de superposición, me gustaría utilizar un diseño con un ImageView y TextView como el TextView va a mostrar alguna información. El problema es que sólo puedo mostrar un dibujable como mi superposición que debe venir de la carpeta Drawable.

Aquí está el código para agregar el elemento de superposición:

private void loadSingleOverlay(TapControlledMap mapViewPassed, String title, String address) { Drawable icon = getResources().getDrawable(R.drawable.marker2); OverlayItem newItem = new OverlayItem(point, title, address); overlay = new ExtendedItemizedOverlay(icon); overlay.addItem(newItem); // add a tap listener overlay.setTapListener(tapListener); List<Overlay> listOfOverlays = mapViewPassed.getOverlays(); listOfOverlays.clear(); listOfOverlays.add(overlay); mapViewPassed.invalidate(); } 

Y el diseño que quiero inflar y utilizar:

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/marker_red" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" /> </RelativeLayout> 

Aquí está el resultado que estoy buscando:

Introduzca aquí la descripción de la imagen

Gracias a todos

No es fácil. La única manera que sé es crear su vista (por ejemplo, el diseño con fondo y vista de texto) y luego convertirlo como un mapa de bits.

 public static Bitmap loadBitmapFromView(View v) { DisplayMetrics dm = v.getContext().getResources().getDisplayMetrics(); Bitmap b = Bitmap.createBitmap(Math.round(v.getMeasuredWidth() * dm.density), Math.round(v.getMeasuredHeight() * dm.density), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); v.draw(c); return b; } 

A continuación, puede agregar a su mapa con algo como a continuación. Tendrás que jugar con los límites dependiendo del tamaño de tu marcador.

 Drawable d = new BitmapDrawable(Utils.loadBitmapFromView(yourView)); d.setBounds(-35, -30, Math.round(d.getIntrinsicWidth() * dm.density) - 35, Math.round(d.getIntrinsicHeight() * dm.density) - 30); overlayItem.setMarker(d); overlayListView.add(overlay); 
  • Cómo obtener la ubicación de Google Map después de soltar Pin sobre ella
  • Keytool Signing Problem: Keystore fue manipulado, o la contraseña fue incorrecta
  • Adición de marcadores múltiples en Google Maps API v2 Android
  • No se puede obtener GoogleMap OnMarkerClickListener para trabajar
  • ¿Quiero conseguir la localización exacta con el api de la localización fusionada de google?
  • Cómo utilizar el método en AsyncTask en android?
  • Deslizando la imagen con la Official Support Library 23.x. + bottomSheet como google maps
  • Error en la autorización de Google Maps para Android API v2
  • Cómo cargar la imagen de la URL de carga de perezosos en Google Maps
  • Google Maps v2 que centra y que da vuelta a la posición de la cámara para caber dos marcadores
  • Google Maps 7 iniciado con intención geográfica está soltando un alfiler en la dirección más cercana a una coordenada en lugar de la ubicación exacta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.