我正在绘制2个字符串,其中一个包括我的名字,中间名,姓氏和另一个我的国家我在一个油漆组件中创建它们位于中心面板中,但是,我尝试了许多不同的方式和计算以居中这个字符串,但其中没有一个是正确的准确工作是他们的准确方法?这是我到目前为止尝试过的计算示例
posX=((getWidth()-fm.stringWidth(phrase))/2);
posY= ((getHeight()-fm.getHeight())/2);
答案 0 :(得分:1)
由于文字是从基线向上渲染的,因此您需要调整y
位置以将其考虑在内:
posY = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();
否则,您将关于基线的文本居中,而不是“绝对”
这证明了in this example
您还应该查看Font Concepts了解更多详情