我正在尝试逐个字符地绘制字符串,以便为由文本组成的形状添加灯光效果。
while (i != line.length()) {
c = line.substring(i, i + 1);
cWidth = g.getFontMetrics().stringWidth(c);
g.drawString(c, xx += cWidth, yy);
i++;
}
问题是,当将这两个字符打印为字符串时,字符的宽度并不是与另一个字符绘制的实际距离。有什么方法可以在graphics2d中获得正确的距离吗?
Lukas Baran 的答案解决了可能导致输出看起来很糟糕的主要问题。然而,更微妙的问题仍然存在,即您无法以这种方式复制字距调整。这个问题的严重程度可能取决于您使用的字体。为了获得正确的字距调整,你可以这样做:
while (i != line.length()) {
String c = line.substring(i, i + 1);
String d = line.substring(0, i + 1);
int cWidth = g.getFontMetrics().stringWidth(c);
int dWidth = g.getFontMetrics().stringWidth(d);
g.drawString(c, xx + dWidth - cWidth, yy);
i++;
}
这应该将每个字符放置在字距调整应放置的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)