【问题标题】:JavaFX 2.2 font rendering problematicJavaFX 2.2 字体渲染有问题
【发布时间】:2013-12-06 10:07:23
【问题描述】:

我们无法让Roboto Thin 字体以我们想要的大小显示在我们的JavaFX 应用程序中。它在渲染中存在锯齿。

我们采用了 here 的 Roboto 字体。 (实际上来自maven)

100px 看起来不错,这对于我们的目的来说太大了。

理想情况下,我们希望它可以重新调整大小和可拉伸。然而,即使在 50 像素处它看起来也是锯齿状的,这应该是最适合的,因为它可以被 2 整除(从完美的 100 像素中没有失败像素)。我们尝试了其他小尺寸,但同样不满意。

如果您查看此link of RobotoThin100 rendered as a Google web font,它会小得多,并且没有任何这些别名问题。

我们计划使用这个porting framework to run on android,这意味着我们需要使用Java 7,并且不能升级到我们目前理解的JavaFX 8。不过,截图只是目前的 Windows 7 版本。

我们的 CSS 如下所示:

.label
  {
    -fx-text-fill:#ffffff;/*white*/
    -fx-font-size: 100px;
    -fx-font-family: "Roboto Thin";
  }

我们是不是做错了什么?

提前致谢。

【问题讨论】:

    标签: java fonts javafx-2


    【解决方案1】:

    所以@Aliana 你的意思是你希望你的文本在整个设备上都可以重新调整大小,如果这样设置为 100px,你必须放置 100dp(数字像素)而不是像素

    【讨论】:

    • 问题是关于别名的。如果您查看第二张图片,您会发现它的锯齿状边缘比上一张图片更加粗糙(不平滑)。尽管尺寸更小,但 Google-Web-Font 比第二张图像具有更好的渲染效果。无论是在 css 中设置为相对还是为特定设备设置特定分辨率,调整大小的意图都无关紧要。
    【解决方案2】:

    将这两行添加到您的代码中:

    System.setProperty("prism.lcdtext", "false");
    System.setProperty("prism.text", "t2k");
    

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

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 1970-01-01
      • 2015-09-12
      • 2015-05-12
      • 1970-01-01
      • 2018-04-20
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多