JavaFX 2.2字体渲染存在问题。

9
我们无法使Roboto Thin字体在我们的JavaFX应用程序中以我们想要的大小显示出来。它在渲染时存在锯齿状。
我们从这里获取了Roboto字体。(实际上是从maven获取)
它在100px的大小下看起来很好,但对于我们的目的来说太大了。 100pxImage 理想情况下,我们希望它可以被重新调整大小和拉伸。然而,即使在50px的大小下,它看起来也很锯齿状,这应该是最合适的大小,因为它可以被2整除(没有从完美的100看起来的像素掉落)。我们已经尝试过其他小尺寸,同样不满意。

50pxImage

如果你看一下这个链接,它将RobotoThin100呈现为一个Google Web字体,它要小得多,并且没有任何这些锯齿状问题。
我们计划使用这个
移植框架来运行Android上的JavaFX应用程序,这意味着我们需要使用Java 7,并且无法升级到我们当前理解的JavaFX 8。然而,这些截图目前仅来自Windows 7版本。
我们的CSS如下所示:
.label
  {
    -fx-text-fill:#ffffff;/*white*/
    -fx-font-size: 100px;
    -fx-font-family: "Roboto Thin";
  }

我们做错了什么吗?

提前感谢。

2个回答

2

所以,@Aliana,你的意思是希望文本在不同设备上可以自动调整大小,如果是这样,那么你需要使用100dp(数字像素)而不是像素的100px。


1
这个问题涉及到别名。如果你看第二张图片,你会发现它比顶部的图片更加锯齿状,边缘不够平滑。尽管其大小更小,但 Google-Web-Font 的渲染效果比第二张图片要好。无论是在 CSS 中设置为相对大小还是为特定设备设置特定分辨率,调整大小的意图都是无关紧要的。 - jsg

1
在你的代码中添加这两行:
System.setProperty("prism.lcdtext", "false");
System.setProperty("prism.text", "t2k");

这解决了我的字体渲染问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接