android有提供绘制字符串的方式,TextPaint
public void drawText(Canvas canvas, Paint paint,String textString,int textColor,int fontSize) {
TextPaint textPaint=new TextPaint();
textPaint.setColor(textColor);
textPaint.setTextSize(fontSize);
StaticLayout staticLayout=new StaticLayout(textString, textPaint, 300,
Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
//绘制的位置
canvas.translate(285, 220);
staticLayout.draw(canvas);
}
参数含义:
1.字符串子资源,这里的\n是可以用的。
2.画笔。
3.layout的宽度,字符串超出宽度时自动换行。
4.layout的样式,有ALIGN_CENTER, ALIGN_NORMAL, ALIGN_OPPOSITE 三种。
5.相对字体大小,1.5f表示行间距为1.5倍的字体高度。
6.据对行间距,0表示0个像素。
实际行间距时这两者的和。
7.没发现是什么意思,参数名是boolean includepad。
需要指出的是这个layout是默认画在Canvas的(0,0)点的,如果需要调整位置只能在draw之前移Canvas:
canvas.translate(fX,fY);