web-dev-qa-db-fra.com

Comment dessiner du texte en gras sur un bitmap?

Je veux une icône Bitmap avec du texte en gras pour la dessiner sur la carte. J'ai un extrait pour écrire du texte sur l'image:

Bitmap icon = BitmapFactory.decodeResource(PropertyMapList.this.getResources(),
        R.drawable.location_mark);
TextPaint Paint = new TextPaint();
Paint.setColor(Color.BLACK);
Paint.setTextSize(14);
Paint.setFakeBoldText(true);
//Paint.setTextAlign(Align.CENTER);
Bitmap copy = icon.copy(Bitmap.Config.ARGB_8888, true); 
Canvas canvas = new Canvas(copy);
//canvas.drawText(jsonObj.getString("district_name"), 5, canvas.getHeight()/2, Paint);
String districtName = jsonObj.getString("district_name");
StaticLayout layout = new StaticLayout((districtName.length()>25 ? districtName.substring(0, 24)+"..":districtName)+"\n"+jsonObj.getString("total_properties"), Paint, canvas.getWidth()-10,Layout.Alignment.ALIGN_CENTER, 1.3f, 0, false);
canvas.translate(5, canvas.getHeight()/2); //position the text
layout.draw(canvas);

setFakeBoldText(true) ne fonctionne pas pour moi. J'aimerais que le texte dessiné sur le bitmap soit en gras.

56
Sampath Kumar

Utilisez la méthode setTypeface sur votre objet Paint pour définir la police sur quelque chose avec le style gras activé.

Paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
151
Gabe Sechan

Pour les polices personnalisées:

Typeface typeface = Typeface.create(Typeface.createFromAsset(mContext.getAssets(), "fonts/bangla/bensen_handwriting.ttf"), Typeface.BOLD);

Pour les polices normales:

Typeface typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD);

et alors

Paint.setTypeface(typeface);
4
Ahamadullah Saikat