質問: new paint(); textpaint.setargb(255, 255, 255, 255); textpaint.settextalign(paint.align.center); textpaint.settextsize(16); textpaint.settypeface(typeface.default_bold); canvas.drawtext("some text", 100, 100, textpaint); super.draw(canvas, mapview, shadow); }
回答: これを行う最も簡単な方法は、ストロークを使用することです...次のようなもの:@override public void draw(canvas canvas, mapview mapview, boolean shadow) { paint strokepaint = new paint(); strokepaint.setargb(255, 0, 0, 0); strokepaint.settextalign(paint.align.center); strokepaint.settextsize(16); strokepaint.settypeface(typeface.default_bold); strokepaint.setstyle(paint.style.stroke); strokepaint.setstrokewidth(2); paint textpaint = new paint(); textpaint.setargb(255, 255, 255, 255); textpaint.settextalign(paint.align.center); textpaint.settextsize(16); textpaint.settypeface(typeface.default_bold); canvas.drawtext("some text", 100, 100, strokepaint); canvas.drawtext("some text", 100, 100, textpaint); super.draw(canvas, mapview, shadow); } これにより、テキストの外側に2ピクセルの境界線が描画され、その上にテキストが描画され、輪郭のように見えます。また、コンストラクタでpaintsを設定してから、それらを再利用することもできます。