38
我想要一個帶有粗體文本的位圖圖標在地圖上繪製。我有一個片段寫在圖像文本:如何在位圖上繪製粗體文本?
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)
不會爲我工作。我希望在位圖上繪製的文本以粗體顯示。
你能解釋清楚嗎? –
setTypeface允許您設置字體。字體有樣式,如粗體,斜體等。您可以查看字體的構造函數,然後瞭解如何使用該樣式創建字體。一旦你創建了一個並通過這個調用進行設置,所有未來的繪製命令都將使用該字體。 –
我試過6或7個答案,而這個是唯一真正有效的答案。 – durbnpoisn