Java:如何从上升线绘制String()
我正在使用Java2D 库的drawString(...) 函数在屏幕上显示一些图形文本。
参考这篇文章中的图,我希望我的字符串是从上升线而不是基线绘制。简而言之,有什么方法可以计算上升线和基线的黑白高度吗?
I am displaying some graphics text on Screen by using the drawString(. . .) function of Java2D Library.
Refering to the figure in this article i want my string to be drawn from Ascender Line rather than BaseLine. In simple words is there any way to calculate the height b/w ascender line and Base Line?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
普通的
drawString
会将基线与y
参数对齐。如果要绘制字符串以使上升线与y
对齐,则需要传递y + fm.getAscent()
wherefm 是当前的
FontMetrics
对象。请参见下面的示例。此屏幕截图:
由以下代码生成:
A normal
drawString
will align the base-line with they
-argument. If you want to draw the string so that the ascent-line is align withy
, you need to passy + fm.getAscent()
wherefm
is the currentFontMetrics
object. See example below.This screen shot:
is produced by this code:
您可以获得
FontMetrics
所使用字体的对象,并使用getAscent()
或getMaxAscent()
确定上升,以适合您的情况为准。You can get the
FontMetrics
object of the used font, and determine the ascent usinggetAscent()
orgetMaxAscent()
, whichever is appropriate in your case.在渲染之前将
FontMetrics.getAscent()
添加到 y 位置。Add
FontMetrics.getAscent()
to the y position before rendering.