gpt4 book ai didi

Android Typeface 字体默认/后备

转载 作者:太空狗 更新时间:2023-10-29 16:33:34 27 4
gpt4 key购买 nike

我使用自定义字体绘制( Canvas )文本(准确地说:我使用自定义字体)。然而,这种字体不支持很多字符,因此一些(不受支持的)字符看起来不同。现在我问自己以下问题:

  • 不受支持的角色看起来如何 - 外观是否取决于系统设置/所有设备上的外观都一样吗?
  • 不支持的字符使用什么(默认)字体? (最后不支持的字母和支持的字母尺寸一样吗?)

最佳答案

我仔细研究了 Android 代码并想发布我的发现:

Typeface.class 实例是使用 Typeface.class 的静态创建方法(createFromAsset/createFromFile/create/等)创建的。然后该实例包含一个字体列表(不可修改 List<Font> )。此列表的第一个元素是主要字体(指定),其他元素(索引:1 - (size-1))是从 FontLoader.class 检索的默认字体(getFallBackFonts() )

其中,Paint.class/Canvas.class ( drawText() ) 使用 Typeface.class 实例来绘制文本(测量字符/绘制/等)。他们尽可能使用主字体(Typeface.mFonts[0])。如果在主字体中找不到字符,则他们会尝试使用后备字体 ( Typeface.mFonts[1] - Typeface.mFonts[size-1] ) 来测量和绘制字符。

结论

如果您想使用自定义字体,您可以使用 Typeface.class 实例。如果您的自定义字体不支持您想要绘制的某些字符(/您在文本中使用的字符),那么系统会尝试使用后备字体。这些后备字体由 FontLoader.class(来自 system-xml)从系统加载。

关于Android Typeface 字体默认/后备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33899929/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com