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 mostrar el mapa google nativo en la vista web en android?
  • ¿Cómo puedo manejar el cambio de mapa usando Google Maps para Android V2?
  • No se pudo obtener el cliente de fábrica de conexión
  • Convertir la ubicación en GeoPoint
  • Marcadores de mapa con texto en Google Maps Android API v2
  • Ajustar a las carreteras Android
  • Androide MapView en el fragmento
  • Actualizar continuamente el marcador cuando cambia la ubicación en Android
  • PhoneGap y Google Maps API V3 "¿Desactivado?"
  • Google Maps Android API v2 - detectar el toque en el mapa
  • Entender boundCenterBottom ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.