首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android字体默认/回退

Android字体默认/回退
EN

Stack Overflow用户
提问于 2015-11-24 17:17:49
回答 1查看 1.5K关注 0票数 3

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

  • 一个不受支持的字符是什么样子--这个外观是否取决于系统设置/在所有设备上外观是否相同?
  • 不支持的字符使用什么(默认)字体?(最后,这些不支持字母是否与支持字母的尺寸相同?)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 09:35:12

我钻研了Android代码,并想发布我的发现:

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

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

结论

如果要使用自定义字体,可以使用Typeface.class实例。如果您的自定义字体不支持要绘制的特定字符(您在文本中使用的/that),则系统将尝试使用回退字体。这些回退字体由FontLoader.class (从system )从系统加载。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33899929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档