Fonts 从列表中查找最长单词(像素级)的程序或方法?

Fonts 从列表中查找最长单词(像素级)的程序或方法?,fonts,Fonts,我设计的东西需要非常精确的间距,所以我需要为每列分配正确的空间 我有一个巨大的名字列表,非常长,我想计算最长的名字会占用多少空间。“iiii”与“mmmm”不同,即使它们具有相同数量的字符,因此显然,根据使用的字体,应该考虑到这一点。如果您使用的是win32,我认为GetTextExtent是您要寻找的API调用。其他平台应该有类似的API 大多数平台(和/或字体处理库)都提供了一种获取字体宽度最大进阶宽度的方法,如果您完全需要,可以使用该方法来分配列宽。这应该是一个非常便宜的操作,因为您只需查

我设计的东西需要非常精确的间距,所以我需要为每列分配正确的空间


我有一个巨大的名字列表,非常长,我想计算最长的名字会占用多少空间。“iiii”与“mmmm”不同,即使它们具有相同数量的字符,因此显然,根据使用的字体,应该考虑到这一点。

如果您使用的是win32,我认为GetTextExtent是您要寻找的API调用。其他平台应该有类似的API

大多数平台(和/或字体处理库)都提供了一种获取字体宽度最大进阶宽度的方法,如果您完全需要,可以使用该方法来分配列宽。这应该是一个非常便宜的操作,因为您只需查找一个值,然后乘以字符串中的字符数,而不是实际渲染字符串

一些平台还提供字体范围的平均前进宽度值;如果你只需要“非常接近”,你可能会设计一个考虑平均值的公式


在Win32下,返回包含最大值和平均值的TEXTMETRIC结构。如上所述,其他平台应该有类似的API,但您必须自己解决这个问题,或者编辑您的问题,以便我们可以帮助您。

如果您可以不进行字距调整(查找最长的字符串),请记住,呈现字符串以查找宽度比测量每个字母的宽度一次并在字符串上添加这些值要昂贵。可能重复哪个平台(win32/64、osX、ios android)、哪个语言(C#、Java、Delphi)?