假设使用10 号字体 呈现的字符串的宽度为200 像素。如果我用15 号字体(增加 50%)绘制同一个字符串,它的渲染宽度是否也会增加 50%(达到 300 像素)?
(当然,这假设字体和呈现文本的 Graphics2D
没有其他变化。)
换句话说,字体的点大小和呈现的文本大小之间是否存在直接的线性关系?还是有其他变量阻止我做出任何此类假设?
最佳答案
您的假设很接近。
但是,字母之间的间距并不总是精确缩放。我相信它与有时有余数的整数除法有关,但我有一段时间没有看过 Java FontMetrics
类代码。
最安全的做法是始终创建具有适当字体大小的新 Font
,并调用 FontMetrics
类的 getStringBounds
方法。
关于Java:字体的磅值与其呈现范围之间是否存在线性相关性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5833017/