webentwicklung-frage-antwort-db.com.de

Wie zeichne ich fetten Text auf einer Bitmap?

Ich möchte, dass ein Bitmap-Symbol mit fettem Text auf der Karte angezeigt wird. Ich habe einen Ausschnitt, um Text auf das Bild zu schreiben:

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) funktioniert bei mir nicht. Ich möchte, dass der auf der Bitmap gezeichnete Text fett gedruckt wird.

56
Sampath Kumar

Verwenden Sie die setTypeface -Methode für Ihr Paint -Objekt, um die Schriftart auf etwas festzulegen, bei dem der Fettdruck aktiviert ist.

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

Für benutzerdefinierte Schriftarten:

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

Für normale Schriftarten:

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

und dann

Paint.setTypeface(typeface);
4