publicvoid drawText (CharSequencetext, int start, int end, float x, float y, Paint paint)
Draw the specified range of text,specified by start/end, with its origin at (x,y), in the specified Paint. Theorigin is interpreted based on the Align setting in the Paint.
Parameters
text | The text to be drawn |
start | The index of the first character in text to draw |
end | (end - 1) is the index of the last character in text to draw |
x | The x-coordinate of origin for where to draw the text |
y | The y-coordinate of origin for where to draw the text |
paint | The paint used for the text (e.g. color, size, style) |
上面这个是Android的画文本的方法,要想让文本居中主要是x,y这两个参数。重载的方法相同。
x | The x-coordinate of origin for where to draw the text |
| 文本的起始点X坐标 |
y | The y-coordinate of the baseline of the text being drawn |
| 文本的baseline坐标 |
X位置居中很简单,文本所在控件宽度的一半减去文字的宽度的一半
Y位置居中必须让BaseLine的位置下潜,因为BaseLine的位置并不是文字的中心位置
具体代码如下:
Paint.FontMetricsfontMetrics = mCountPaint.getFontMetrics();
float bottom =fontMetrics.bottom;
float top =fontMetrics.top;
int y= (int) (measuredHeight/2-bottom+(bottom-top)/2);
canvas.drawText(mCountString,0, mCountString.length(), measuredWidth / 2-v/2, y, mCountPaint);