respuesta de Sam fue mi punto de partida, pero la imagen no se presentaron, sólo el texto (lo uso en un mapa de Google). Finalmente lo conseguí trabajando con un LayerDrawable
. Aquí está mi solución:
private Drawable createMarkerIcon(Drawable backgroundImage, String text,
int width, int height) {
Bitmap canvasBitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
// Create a canvas, that will draw on to canvasBitmap.
Canvas imageCanvas = new Canvas(canvasBitmap);
// Set up the paint for use with our Canvas
Paint imagePaint = new Paint();
imagePaint.setTextAlign(Align.CENTER);
imagePaint.setTextSize(16f);
// Draw the image to our canvas
backgroundImage.draw(imageCanvas);
// Draw the text on top of our image
imageCanvas.drawText(text, width/2, height/2, imagePaint);
// Combine background and text to a LayerDrawable
LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[]{backgroundImage, new BitmapDrawable(canvasBitmap)});
return layerDrawable;
}
USTED sabe cómo hacerlo con un trazado 9 drawable, por lo que puede tomar el tamaño del texto? – Tsunaze
¿cómo harías esto ya que BitmapDrawable ha sido depreciado?!? – M4tchB0X3r
¿Sabes por qué la imagen no apareció con la respuesta de Sam? – pptang