2013-07-29 12 views
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)は私のために動作しません。ビットマップに描かれたテキストを太字にしたいと思います。

答えて

113

PaintオブジェクトのsetTypefaceメソッドを使用して、太字スタイルをオンにしたフォントにフォントを設定します。

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

少し明確に説明できますか? –

+0

setTypefaceを使用すると、フォントを設定できます。フォントには、太字、イタリック体などのスタイルがあります。タイプフェイスのコンストラクタを見て、そのスタイルでフォントを作成する方法を参照してください。これを作成してこの呼び出しで設定すると、このペイントを使用するすべての描画コマンドはそのフォントを使用します。 –

+1

私は6つまたは7つの回答を試しましたが、これは実際に働いた唯一の回答でした。 – durbnpoisn

関連する問題