天天看點

關于 Android 預設字型以及對比微軟雅黑字型

 用了一段時間 Android 手機之後,不禁對系統中的字型産生了興趣。因為看起來,Android 中使用的中文字型和 Windows 中使用的“微軟雅黑”很像,我一度懷疑 Android 中使用的就是這個字型。今天有時間,就一探究竟吧。

由于 Android 是基于 Linux 的作業系統,是以根據 Linux 上的經驗,在手機上使用“ES檔案浏覽器”浏覽到檔案系統的 /system/fonts 檔案夾,就可以看到系統中安裝的字型。為了友善觀察,我把它們複制到電腦上了:

wbpluto的手機中一共有9個字型檔案:1個為時鐘顯示準備的Clockopia,4種樣式的無襯線(Sans Serif)字型,4種樣式的襯線(Serif)字型。關于襯線和無襯線,各位可以上網搜尋一下相關的介紹了解。

這9個字型檔案中,Droid Sans Fallback 體積明顯較大,達到4.2MB,而其他的隻有一百多KB。原來,其他字型隻包含了西方文字字元,因為西方文字都是拼音文字,隻需要少量字元就可以拼成各種單詞,而中日韓等東亞文字基于“型”而不是基于“聲”,是以字元成千上萬,非常多。在計算機系統中,為西方文字準備的字型都非常小,不包含東亞字元,為了解決在使用西方字型時無法顯示東亞文字的問題,就采用了目前這種方式:将一種字型與另一種(或多種)字型連結,遇到第一種字型無法顯示的字元,自動調用連結的字型來顯示。

例如在 Android 系統中,Droid Sans 是預設字型,隻包含西方字元,應用程式預設情況下都會調用它;而 Droid Sans Fallback 包含了東亞字元。當需要顯示的字元在 Droid Sans 字型中不存在(如漢字),即沒有對應編碼的字元時,系統會到 Droid Sans Fallback 中去尋找相應編碼的字元,如果找到,則使用 Droid Sans Fallback 字型來顯示它,如果仍然找不到該編碼對應的字元,則系統無法在螢幕上顯示出這個字元。

各種作業系統中都有這樣的運作機制,例如在英文版的 Windows 7 系統或英文版的應用軟體中,界面預設采用的是在開發 Vista 時專門為螢幕顯示而全新設計的 Segoe UI 字型,其中并不包含中文字元,但當系統需要顯示中文字元時,會自動去調用對應的“微軟雅黑”字型來顯示(如下圖)。當然,這一連結關系是儲存在 Windows 系統資料庫中的,我們可以通過修改系統資料庫來改變它。

下面,通過一幅圖來對比一下 Droid Sans Fallback 和 微軟雅黑這兩個長得非常像的字型:

  • 雅黑字型顯得更寬。但根據整行漢字來看,雅黑單個字元的寬度并沒有更寬,隻是減少了邊緣的空白,使字間距變小,相鄰兩個字的筆畫幾乎要挨在一起了。
  • 雅黑字型筆畫分布均勻,如“地”字,四條豎線之間的間隔一緻。
  • 雅黑字型布局更合理,如“圖”字裡面的“冬”看起來重心很穩,而 Droid Sans Fallback 中的“冬”有點要倒的感覺。
  • 由于寬度和筆畫布局上的不同,造成雅黑字型看起來更豐滿(肥),更緊實。
  • 這兩種字型都是非等寬字型,可以看出雅黑的英文字母和數字普遍更寬(中文由于是方塊字,寬度沒有差別)。
  • 雅黑在可能的情況下筆畫更長,例如“号”字下方的勾,這樣在小字号時可讀性更好。
  • 小字号情況下,雅黑字型仍然顯得大一些,并且由于筆畫的間距控制得較好,更容易看清楚每個字,相比之下,Droid Sans Fallback 筆畫黏在一起的情況稍微嚴重一些(如“最”字)。
  • 仔細觀察一下,小字号時的雅黑字底部并沒有完全對齊,而 Droid Sans Fallback 對得很整齊。是以雅黑在小字号時有點大小不一,這也是其廣為诟病的一點。

需要說明的是,雖然字型檔案中指定了字元的筆畫,但字元的渲染效果仍然和系統環境有關系,上圖是使用 Photoshop 制作的,和手機上的顯示效果不完全相同。盡管如此,由于處在同一個渲染環境下,我們仍然可以對比出兩種字型的差別和各自的特點。

繼續閱讀