什么是字体?

什么是字体?

百度百科里面是如下解释的:“文字的外在形式特征。就是文字的风格,是文字的外衣。字体的艺术性体现在其完美的外在形式与丰富的内涵之中。字体是文化的载体,是社会的缩影。”
维基百科里面是如下解释的:“字体(英语:typeface或font family)在书法和印刷领域是指文字的式样。”
我的理解是,字体是文字书面化的样式载体,定义文字是如何写/画在书面上规则。
知道为什么我们能清晰的分辨出自己写的字和“张三”写的字吗? 字体不同。
在计算机的世界中,屏幕中显示的文字样式都不是输入者实际写的。输入者写的所有文字,都只是通过输入设备(如键盘)将想要输入的文字传递给文件编辑软件(如word、记事本),而在各种编辑软件中,均有设置字体的入口,而使用相同的字体,写相同的文字,理论显示效果是一致的(排除屏幕分辨率的影响)。
所以可以理解为,字体是承载文字的载体,规定了什么样的字,以什么样式显示在屏幕上。

常见字体的分类

结合ISO/IEC 9541-1:1991和GB/T 16964.1 协议,将字体大概分支下面9类

  1. 安色尔体类
  2. 石刻类
  3. 黑体字母类
  4. 衬线类
  5. 无衬线类
  6. 手写体类
  7. 装饰类
  8. 符号和装饰类
  9. 传统汉字类
    其中每个类别下均有多个字体库,目前大概有千种不同的字体存在,新的字体不断发展。
    其中比较常见的是衬线字体和非衬线字体。
    其表现形式如下
    什么是字体?_第1张图片

Android中主要用到的字体都有哪些?

android 支持默认支持4种字体,分别如下
noraml (普通字体,系统默认使用的字体 >= 4.1 roboto)
sans(非衬线字体)
serif (衬线字体)
monospace(等宽字体)

字体三大概念

字体家族

通常说说的字体其实就是指字体家族。字体家族一般代指具备某一类特点的各字重字体的统称。
我们在实际开发中,常用的第三方字体Ununtu 、ProximaNova、roboto 其都是有家族、成套的,每一种都有不同的平台和不同自重的。
切忌每一种字体都是经过设计师一笔一笔设计出来的、都是有版权的,商用要注意授权和法律问题。

字重

在实际开发中,经常会遇到文字粗体、斜体显示,这里面的粗体和斜体实际上都是字重的概念。
实际上每一种字重在存储上的表现都是一个独立的字库库(ttf)。
android官方支持的字重主要有NORMAL、BOLD、ITALIC、BOLD_ITALIC四种,实际上对应于字体库来说,是一个字体家族的4个不同字体。

字号

口头中说所得,8号字、12号字中所描述的x号字,就是字号的概念。通常来讲,字号的单位是sp。

Android 字体使用

回顾一下,我们是如何使用斜体的,最常见的方式是
android:textStyle=“italic”
如何自定字体呢?
android:typeface=“sans-serif-meduim”
那谷歌是如何如何实现的呢?
在android 源码中存在这样一个文件frameworks/base/data/fonts/fonts.xml。他就是为系统制定字体的,下面将android5.1的文件截图,我们来看一下
什么是字体?_第2张图片
通过上图,可以看到我们通过typeface=“sans-serif-meduim” 设置的实际字体是normal 状态下,weight为500的Robot-Medium字体库。其保存的文件为Robot_Medium.ttf文件。

字体设计规则

说了那么多, 字体的规则导致是怎么样的呢?
我们随意找个字体,简单看下
什么是字体?_第3张图片

上文中,可以看到ProximaNova 粗体字的基本内容。那么单个字体是如何设计呢?下面将分中文和英文,分别描述
什么是字体?_第4张图片

什么是字体?_第5张图片

那么其是如何和代码对应的呢?
什么是字体?_第6张图片
通过FontMetricsInt 的各种参数,可以设置对其等各种自定义场景了。

到此为止,字体的基本概念描述的差不多了,希望对你有所帮助,更多字体及字体替换内容,请其他后面的blog。

你可能感兴趣的:(Android,随笔,字体,字号,字重,字体是什么)