300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android设置文字水平和垂直居中显示 Android TextPaint 写文字 水平 垂直居中

android设置文字水平和垂直居中显示 Android TextPaint 写文字 水平 垂直居中

时间:2024-02-01 01:49:25

相关推荐

android设置文字水平和垂直居中显示 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);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。