GC 和 FontData 获取字体高度有啥区别?
Posted
技术标签:
【中文标题】GC 和 FontData 获取字体高度有啥区别?【英文标题】:What's the difference between GC and FontData for getting font height?GC 和 FontData 获取字体高度有什么区别? 【发布时间】:2012-11-16 06:28:37 【问题描述】:这解释了字体度量
我认为我们可以像这样在 SWT 中获得“字体高度”;
GC gc = new GC(label);
System.out.println( gc.textExtent(label.getText()) );
System.out.println( label.getFont().getFontData()[0].getHeight() );
为什么这两个出局不一样?哪个是字符串的正确高度?
【问题讨论】:
【参考方案1】:GC#textExtent()
以像素返回范围,而FontData
以点字体返回。这里的单位不同。
【讨论】:
其实不太确定,但我会遍历字体高度,直到达到我需要的像素高度。 谢谢。但这似乎不是一种方便的方法。 @miqbal:你可以通过Device.getDPI()
获取系统DPI,例如pixels = points * Device.getDPI() / 72
。
@EdwardThomson: Device.getDPI()
返回Point
。【参考方案2】:
使用FontMetrics.getHeight()
获取以像素为单位的高度。
FontMetrics fontMetrics = gc.getFontMetrics()
【讨论】:
使用此方法的问题是文本是否包含任何返回。使用 textExtent 将包含多行的像素。以上是关于GC 和 FontData 获取字体高度有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
使用 em 和百分比的 css 字体大小有啥区别? [复制]
js中的clientHeight和offsetHeight有啥区别么?