如何在曲面视图中水平居中String?
我不想要
c.drawText(""+score, c.getWidth()/2, y);
因为这会显示从屏幕中心开始的文字。
我想要像
这样的东西c.drawText(""+score, c.getWidth()/2-score.length()/2*fontSize, y);
有没有解决这个问题的公式?如果没有,是否还有其他方法可以在表面视图中居中文本?
BTW我正在使用自定义字体,我不知道这是否会改变。如果您需要了解有关该字体的任何其他信息,请发表评论。
答案 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);