相同字体在 IntelliJ IDEA 和 Android Studio 中的呈现方式不同

相同字体在 IntelliJ IDEA 和 Android Studio 中的呈现方式不同

我使用 IntelliJ IDEA 和 Android Studio 进行开发,很长时间以来,我一直在试图弄清楚为什么这两个程序来自同一家公司, 和基于相同的代码库并使用精确的相同的字体设置(和相同的文本抗锯齿方法)将会以不同的方式呈现编辑器窗格中的文本。

例如,将两个程序都设置为使用DejaVu Sans Mono, 12pt

  • Android Studio:

    在此处输入图片描述

  • IntelliJ IDEA:

    在此处输入图片描述

您可以清楚地看到差异,字体更细和/或几乎像在 IntelliJ 中没有经过抗锯齿处理一样。

这让我很恼火,因为我发现 IntelliJ 中的文本对眼睛来说太难看了。

有没有其他人遇到过这种情况并知道如何解决?

答案1

好吧,我设法找到了解决方法,但它绝对不是我所期望的那样。

事实证明,IntelliJ 使用了我的系统 JDK(Oracle 的 JDK 8),而现在与 JDK 捆绑在一起的 Android Studio 则使用其捆绑的 JDK(OpenJDK 8)。

只需告诉 IntelliJ 使用 Android Studio 捆绑的 JDK 而不是系统 JDK 即可解决该问题。您可以这样做:

  1. 转到帮助-->查找操作

    在此处输入图片描述

  2. 搜索“启动 JDK”

    在此处输入图片描述

  3. 点击...下拉菜单中的

    在此处输入图片描述

  4. 指向{AS install DIR}/jre

    在此处输入图片描述

  5. 告诉 IntelliJ 可以重新启动:

    在此处输入图片描述

  6. 当它恢复时,字体就被修复了!

答案2

1 - 编辑<JetBrains product directory>/jre/jre/lib/fontsfont.conf

2 - 注释掉所有<test>部分

结果文件:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
<!--
    <test name="family" qual="all" compare="not_eq">
      <string>Consolas</string>
    </test>
    <test name="family" qual="all" compare="not_eq">
      <string>Noto Sans Mono CJK JP</string>
    </test>
    <test name="size" qual="any" compare="less">
      <double>12</double>
    </test>
    <test name="weight" compare="less">
      <const>medium</const>
    </test>
-->
    <edit mode="assign" name="hintstyle">
      <const>hintslight</const>
    </edit>
  </match>
</fontconfig>

3 - 重启创意

答案3

我也注意到了这一点。我在 IntelliJ 和 Android Studio 上使用 One Dark 主题。默认情况下,IntelliJ 显示的颜色似乎更鲜艳。

如果您在 IntellJ 中选择主题 > One Dark,并在 Android Studio 中选择主题 > One Dark Vivid,则差异不太明显。

相关内容