在曲面视图中居中文本(String)

时间:2013-10-16 00:43:37

标签: android string canvas surfaceview centering

如何在曲面视图中水平居中String?

我不想要

c.drawText(""+score, c.getWidth()/2, y);

因为这会显示从屏幕中心开始的文字。

我想要像

这样的东西
c.drawText(""+score, c.getWidth()/2-score.length()/2*fontSize, y);

有没有解决这个问题的公式?如果没有,是否还有其他方法可以在表面视图中居中文本?

BTW我正在使用自定义字体,我不知道这是否会改变。如果您需要了解有关该字体的任何其他信息,请发表评论。

1 个答案:

答案 0 :(得分:3)

您无需手动计算。您只需在Paint对象中指定一些额外的参数:

Paint paint = new Paint(); 
paint.setColor(textColor); 
paint.setTextSize(28); 
paint.setTypeface(typeface); 
paint.setTextAlign(Align.CENTER);

关键是您需要指定 Align.CENTER ,这样您就可以调用:

canvas.drawText("CENTERED TEXT", canvas.getWidth()/2, posY, paint);