我使用Java2D Library的drawString(...)函数在屏幕上显示一些图形文本。
参考本article中的图,我希望我的字符串是从Ascender Line而不是BaseLine中提取的。简单来说,有没有办法计算高度b / w上升线和基线?
答案 0 :(得分:5)
正常drawString
会将基线与y
- 参数对齐。如果要绘制字符串以使上升线与y
对齐,则需要传递y + fm.getAscent()
,其中fm
是当前FontMetrics
对象。见下面的例子。
此屏幕截图:
由此代码生成:
FontMetrics fm = g.getFontMetrics();
g.setColor(Color.RED);
g.drawLine(10, 10, 100, 10);
g.setColor(Color.BLACK);
g.drawString("Hello frog", 10, 10 + fm.getAscent());
答案 1 :(得分:2)
您可以获取所用字体的FontMetrics
对象,并使用getAscent()
或getMaxAscent()
确定上升,以您的情况为准。
答案 2 :(得分:1)
在渲染之前将FontMetrics.getAscent()
添加到y位置。