如何在Java中计算字符串
的宽度(以像素为单位)?例如,我有一个字符串说“你好世界!它的长度是多少(以像素为单位),还要考虑它的字体系列和大小?
有很多方法可以实现你想要的,例如,基于你想要实现的目标...
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();
但这只与BufferedImage
和Graphics
context有关,它不会反过来说,比如屏幕或打印机。
但是,只要您具有图形
上下文,就可以获得相同的结果。
显然,这个示例使用Graphics
上下文安装的默认字体,如果需要,可以更改它。。。
你可以试试这样的东西
Graphics2D g2d = ...
Font font = ...
Rectangle2D r = font.getStringBounds("hello world!", g2d.getFontRenderContext());
System.out.println("(" + r.getWidth() + ", " + r.getHeight() + ")");
参考此文档,可能会对您有所帮助。
简而言之:问题取决于您使用的框架。例如,如果您使用的是 AWT,并且具有图形
对象图形
和字体
对象字体
,则可以执行以下操作:
FontMetrics metrics = graphics.getFontMetrics(font);
int width = metrics.stringWidth("Hello world!");
更多信息请看这里。
问题内容: 我想在 android中 以像素为单位计算字符串字体宽度。我有字符串数组,我将所有这些数组元素附加到一个字符串中。所以我必须在两个连续的数组元素之间设置固定的间距。我将最后一个字符串放入textview中。最后,我将这个textview添加到tablerow中。简而言之,我想查看带有标题和值的表结构。我在这里看到过很多帖子,但没有得到解决方案。 提前致谢…!!! 问题答案: 似乎上有可
问题内容: 如何在Java中以像素为单位计算a的宽度? 例如,我有一个字符串说“ Hello World!”。 考虑到其字体系列和大小,它的像素长度是多少? 问题答案: 有多种方法可以实现想要的目标,例如,基于要实现的目标。 但这仅与上下文相关,并且不会转换为屏幕或打印机之类的内容。 但是,只要您具有上下文,就可以实现相同的结果。 显然,此示例使用了为上下文安装的默认字体,如果需要,可以更改…
问题内容: 在Java FX 2.2中似乎没有API调用来计算文本字符串的宽度(以像素为单位)。在其他论坛上也有解决方法的建议,但是我创建或查找使用默认字体或其他方式返回String宽度的任何代码的工作都失败了。任何帮助,将不胜感激。 问题答案: 如果仅在不使用CSS的情况下测量默认字体,请执行以下操作: 将要测量的字符串放在Text对象中。 获取Text对象的布局范围的宽度。 如果你需要应用CS
在JavaFX2.2中,似乎没有API调用来计算文本字符串的宽度(以像素为单位)。在其他论坛上也有关于解决方法的建议,但我使用默认字体或其他方式创建或查找返回字符串宽度的代码的努力失败了。任何帮助都将不胜感激。
问题内容: 给定特定对象,有没有一种方法可以计算不使用任何GUI组件的字符串的长度(以像素为单位)? 问题答案: 那不使用任何GUI组件? 这取决于您在这里的意思。我假设您的意思是您希望在不收到的情况下进行此操作。 最好的方法是使用。AFAIK,这不会抛出: 除了使用类似的方法,我认为您不能。您需要图形上下文才能创建并提供字体大小信息。
问题内容: 我有一个Python脚本,该脚本需要计算以任意字体显示的任意字符串的确切大小,以便生成简单的图表。我可以用Tkinter轻松地做到这一点。 结果似乎取决于Python和/或系统的版本: Python 2.5 Mac 0S X,时间12:(63,12),时间24:(128,24)。Python 2.6 Mac OS X,时间12:(64,14),时间24:(127,27)。Python