2013-07-29 22 views
38

Chcę, aby ikona Bitmapy z pogrubionym tekstem narysowała ją na mapie. Mam fragment napisać tekst na obrazek:Jak narysować pogrubiony tekst na bitmapie?

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) nie działa dla mnie. Chciałbym, aby tekst narysowany na Bitmapie został pogrubiony.

Odpowiedz

113

Użyj metody setTypeface na obiekcie Paint, aby ustawić czcionkę na coś z włączonym pogrubionym stylem.

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

Czy możesz wyjaśnić niewiele jasne? –

+0

setTypeface pozwala ustawić czcionkę. Czcionki mają style, takie jak pogrubienie, kursywa itp. Możesz spojrzeć na konstruktorów czcionki i zobaczyć, jak stworzyć czcionkę z tym stylem. Po utworzeniu i ustawieniu za pomocą tego połączenia wszystkie przyszłe polecenia rysowania za pomocą tego pędzla będą używać tej czcionki. –

+1

Próbowałem 6 lub 7 odpowiedzi, a ten był jedynym, który faktycznie działał. – durbnpoisn