Ответ 1
Этот метод извлекает ресурсы из ваших ресурсов, рисует над ним текст и возвращает новый. Все, что вам нужно сделать, это дать ему идентификатор ресурса вашего пузыря и текст, который вы хотите сверху. Затем вы можете передать возвращаемый чертеж, где хотите.
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);
}
Чтобы сохранить плотность, вам понадобится этот конструктор
BitmapDrawable (Resources res, Bitmap bitmap)
Итак, сохраняя ваш контекст, последний возврат должен быть чем-то вроде
return new BitmapDrawable(context.getResources(), bm);
Это предотвращает нежелательное изменение размера.