Este método toma un dibujable de sus recursos, dibuja un texto en la parte superior de la misma y devuelve la nueva estirable. Todo lo que necesita hacer es darle la identificación del recurso de su burbuja, y el texto que desea en la parte superior. Luego puede pasar el dibujo extraíble donde lo desee.
public BitmapDrawable writeOnDrawable(int drawableId, String text){
Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId).copy(Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
paint.setStyle(Style.FILL);
paint.setColor(Color.BLACK);
paint.setTextSize(20);
Canvas canvas = new Canvas(bm);
canvas.drawText(text, 0, bm.getHeight()/2, paint);
return new BitmapDrawable(bm);
}
Para preservar la densidad que necesita este constructor
BitmapDrawable (Resources res, Bitmap bitmap)
Por lo tanto, el mantenimiento de su contexto, la última declaración debe ser algo como
return new BitmapDrawable(context.getResources(), bm);
Este prevenir un dibujable cambiado el tamaño deseado.
Danos un código! Al menos intente escribir lo que está explicando aquí y le ayudaremos – iTurki
gracias por una respuesta rápida. De hecho, quiero pasar texto contable dibujable en la clase siguiente MyItemizedOverlay que extiende ItemizedOverlay- \t itemizedOverlay = new MyItemizedOverlay (drawable, mapView); \t \t \t \t point = new GeoPoint ((int) (Search.slat [i] * 1E6), (int) (Search.slon [i] * 1E6)); \t \t OverlayItem overlayItem = new OverlayItem (point, Search.address [i], Search.city [i]); –
Abhi
¿Podría actualizar su pregunta con el código? Realmente difícil de leer aquí – iTurki