我目前正在为我的菜单系统上的Java游戏,我不知道如何可以从中心的文本Graphics.drawString(),因此,如果我想画一个文本,其中心点是在X: 50和Y: 50,和文字30像素宽,10像素高,文本将从X: 35和开始Y: 45.
在绘制文本之前,我可以确定文本的宽度吗?
然后这将很容易数学.
编辑:我也想知道我是否可以获得文本的高度,这样我也可以垂直居中.
任何帮助表示赞赏!
我使用java绘制一些文本,但我很难计算字符串的宽度.例如:zheng中国......这个字符串会占用多长时间?
我正在创建一个excel文档的图形时间轴,我需要在该事件的标记旁边有一个小事件名称标签.其中一些很容易,并且是正确的,但其他一些是合理的,我需要弄清楚它们的宽度,以便我可以正确地抵消它们.
window.drawString("7/4-Fourth of July",horizontalIndex-Offset,verticalIndex);
目前我使用平均值为10和32的平均值来平均像素宽度,但这并没有真正削减它.有人可以帮助我获得确切的偏移吗?
我正在尝试为将在MSN Messenger上运行的C#应用程序创建文本颜色.我正在排队等待所有事情.
这是我想要的输出示例:
1)  Pizza Hut                                            123 Fake St.
2)  Domino's Pizza                                       123 Fake St.
3)  The Cheesecake Cafe                                  123 Fake St.
4)  Capital Pizza & Steakhouse                           123 Fake St.
5)  Funky Pickle Pizza                                   123 Fake St.
6)  Boston Pizza                                         123 Fake St.
7)  Rose Bowl Rouge Lounge                               123 Fake St.
8)  Royal Pizza                                          123 Fake St.
9)  A Columbus Pizza & Donair Inc                        123 Fake St.
但因为它是一个可变宽度的字体,它显示如下:
1)  Pizza Hut                                        123 Fake St.
2)  Domino's Pizza                                   123 Fake St. …半角:常规宽度字符。
例如。'A' 和 '?'
全角:在显示器上占用两个等宽英文字符空间的字符
。'?', '?' 和 '?'
我需要这个函数的实现:
/**
 * @return Is this character a full-width character or not.
 */
fun Char.isFullWidth(): Boolean
{
    // What is the most efficient implementation here?
}
不,这与这些字符的数据结构无关,而仅与显示的宽度有关。
我正在重构 HyLogger,这是一个专注于文本着色渐变的日志库。这是我遇到的问题:
如果您查看屏幕截图中打印的第一个渐变文本块,中间的全角文本将其后的渐变图案弄乱了,因为在调用 时string.length,即使它们占据两倍大小,它们也被视为一个字符。
您可能会问,为什么会有人打印全角字符?这是一个真正的问题,因为中文、日文或韩文等语言中的几乎所有字符都是全角字符,因此占用的空间是英文全角字符的两倍。
所以我需要一种方法来识别全角字符,以便我可以将它们计算为两个渐变像素而不是一个来解决图片中的问题。
Unicode 网站(以及报告)上有一个东亚宽度字符列表,但在呈现渐变文本块时遍历每个字符的整个列表可能效率不高。
Python 有这个Unicode 数据库库,一种可能的解决方案是使用 Jython 调用 python API,这会很重,而且效率可能不是很好。
如何计算StringJava中像素的宽度?例如,我有一个字符串说"Hello World!".它的长度(以像素为单位),还考虑其字体系列和大小?
在Java中我创建了一个使用unicode和overline的字符串,因为我试图显示数字的平方根.我需要知道一些格式问题的字符串长度.在unicode中使用组合字符时,查找字符串长度的常用方法似乎失败,如下例所示.任何人都可以帮我找到随机数在平方根中的第二个字符串的长度,或者如何更好地进行平方根显示的提示?
    String s = "\u221A"+"12";
    String t = "\u221A"+"1"+"\u0305"+"2"+"\u0305";
    System.out.println(s);
    System.out.println(t);
    System.out.println(s.length());
    System.out.println(t.length());
感谢您的帮助,我在谷歌上找不到任何相关内容.
我通过使用对象stringWidth("str")上的方法来计算字符串的宽度FontMetrics.此方法仅给出基线上从起点到终点的宽度.不是字符串的总宽度.
有关如何计算总宽度的任何想法?
大多数文档说我不能通过在字符串中添加每个字符的宽度来依赖结果.这是我的代码,直到现在:
BufferedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = image.createGraphics();
FontMetrics fm = g.getFontMetrics(new Font("Arial", Font.PLAIN, 6));
int width = fm.stringWidth("Product name");