假设用10点字体渲染的字符串为200像素宽。如果我用15点字体绘制相同的字符串(增加50%),其渲染宽度也会增加50%(到300像素)?
(当然,这假设字体和呈现文本的Graphics2D
没有其他更改。)
换句话说,字体的点大小和文本呈现的大小之间是否存在直接的线性关系?还是有其他变量阻止我做出这样的假设?
你很接近你的假设。
然而,字母之间的间距并不总是精确地缩放。我相信它与整数除法有时有余数有关,但我有一段时间没有看Java FontMetrics
类代码了。
你总是最安全的创建一个新的Font
与适当的字体大小,并调用FontMetrics
类的getStringBounds
方法。