如何计算字符串的宽度(以像素为单位)?

use*_*754 5 java string fonts width

如何计算StringJava中像素的宽度?例如,我有一个字符串说"Hello World!".它的长度(以像素为单位),还考虑其字体系列和大小?

nic*_*hev 5

简而言之:问题取决于您使用的框架。例如,如果您使用 AWT,并且有一个Graphicsobjectgraphics和一个Fontobject ,font您可以执行以下操作:

FontMetrics metrics = graphics.getFontMetrics(font);
int width = metrics.stringWidth("Hello world!");
Run Code Online (Sandbox Code Playgroud)

查看此内容以获取更多信息。


Mad*_*mer 1

根据您想要实现的目标,有多种方法可以实现您想要的目标,例如......

BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
FontMetrics fm = g2d.getFontMetrics();
System.out.println(fm.stringWidth("This is a simple test"));
g2d.dispose();
Run Code Online (Sandbox Code Playgroud)

但这仅BufferedImage与它的Graphics上下文相关,它不会翻译回诸如屏幕或打印机之类的东西。

但是,只要有Graphics上下文,就可以达到相同的结果。

显然,此示例使用为上下文安装的默认字体Graphics,如果需要,您可以更改该字体...