本文主要是介绍Android TextPaint 写文字 水平、垂直居中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在宽width高height的画布上画一字符串,使字符串水平竖直居中:
1、水平居中的方法:
第一步:水平居中很简单,paint.setTextAlign(Align.CENTER);
第二步:drawText的x坐标设置为width / 2即可,
2、垂直居中的方法:
竖直居中稍显麻烦,可以使用FontMetrics对象计算文字高度,然后计算baseline,使文字垂直居中,代码如下:
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setTextSize(18);
paint.setTextAlign(Align.CENTER);
FontMetrics fontMetrics = paint.getFontMetrics();
// 计算文字高度
float fontHeight = fontMetrics.bottom - fontMetrics.top;
// 计算文字baseline
float textBaseY = height - (height - fontHeight) / 2 - fontMetrics.bottom;
canvas.drawText(text, width / 2, textBaseY, paint);
示例代码如下:
textPaint.setColor(this.innerTextColor);
textPaint.setAntiAlias(true);
textPaint.setTextAlign(Align.CENTER);
textPaint.setTextSize(this.innerTextSize);
FontMetrics fontMetrics = textPaint.getFontMetrics();
// 计算文字高度
float fontHeight = fontMetrics.bottom - fontMetrics.top;
// 计算文字baseline
float textBaseY = bounds.height() - (bounds.height() - fontHeight) / 2 - fontMetrics.bottom;
canvas.drawText( this.innerText , bounds.width() / 2, textBaseY, textPaint);
这篇关于Android TextPaint 写文字 水平、垂直居中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!