2013-07-29 16 views
38

Desidero un'icona Bitmap con testo in grassetto per disegnarla sulla mappa. Ho un frammento per scrivere il testo sull'immagine:Come disegnare il testo in grassetto su una bitmap?

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) non funziona per me. Vorrei che il testo disegnato sulla bitmap fosse in grassetto.

risposta

113

Utilizzare il metodo setTypeface sull'oggetto Paint per impostare il carattere su qualcosa con lo stile grassetto attivato.

paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD)); 
+1

Puoi spiegare poco chiaro? –

+0

setTypeface consente di impostare un font. I font hanno stili, come grassetto, corsivo, ecc. Puoi guardare i costruttori per il carattere tipografico e vedere come creare un font con quello stile. Una volta creato e impostato tramite questa chiamata, tutti i futuri comandi di disegno con questa vernice useranno quel tipo di carattere. –

+1

Ho provato 6 o 7 risposte, e questa era l'unica che funzionava davvero. – durbnpoisn

Problemi correlati