成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android字體修改,所有的細節都在這里 | 開篇

移動開發 Android
Android 系統默認使用的是一款叫做 Robote 的字體。Robote 本身就是 Google 自己的字體格式,Android 和 Chrome 操作系統上,默認都會使用 Robote 字體,并且也是 Google 視覺語言推薦的字體。

在 Android 下使用自定義字體已經是一個比較常見的需求了,最近也做了個比較深入的研究。

那么按照慣例我又要出個一篇有關 Android 修改字體相關的文章,但是寫下來發現內容還挺多的,所以我決定將它們拆分一下,分幾篇來詳細的講解(可能是五篇)。主要會是一些常用的替換字體的方案,***還會介紹一些全局替換的方案,當然也會包含***的 『Fonts in XML』的方案。

期待你持續關注。

一、開篇

因為 Android 字體相關的內容還比較多的。有時候其實我們只需要調整一下屬性就可以滿足設計師的需求,或者是一個退后的方案(畢竟有發版的時間卡住了),有一些效果可以大概滿足需求。

那么本文就先介紹一下再 Android 下原生內置的一些字體的一些基本概念和使用。

需要注意的是,內置的一些字體只對英文有效。

二、Android 的默認字體

Android 系統默認使用的是一款叫做 Robote 的字體。Robote 本身就是 Google 自己的字體格式,Android 和 Chrome 操作系統上,默認都會使用 Robote 字體,并且也是 Google 視覺語言推薦的字體。

想要了解更多關于 Robote 的內容,可以去 Google 的網站上查看。

https://fonts.google.com/specimen/Roboto

正常來說,Robote 就已經提供了多種的選擇,例如:粗細、斜體 等等。但是通常它并不能滿足我們設計師的需要。

接下來看看當我們想要使用 Android 內置的一些字體的時候,我們需要使用哪些屬性。

三、哪些屬性可以影響字體

Android 本身已經提供了一些修改字體樣式的屬性和方法。

當你想要修改字體的時候,你將面對三個屬性,它們都有對應的 Java 方法。

  • android:textStyle
  • android:typeface
  • android:fontFamily

下面來分別詳細的說明這幾個屬性。

3.1 android:typeStyle

textStyle 主要用于設定一些字體的樣式,它是對所有的字體都生效的。也就是說哪怕你替換了字體,依然可以使用 textStyle 來修飾它的樣式。textStyle 本身支持的可選項有 normal|bold|italic,它們也非常的好理解,就是普通|粗體|斜體。

可以看到,字體是不受 textStyle 影響的,這里影響的只有它的樣式。

3.2 android:typeface

typeface 可以用于設置一些默認的字體,它可選的屬性有 normal|sans|serif|monospace 等。normal 和 sans 的字體其實是一樣的,serif 是一個帶襯線的字體,而 nonospace 是等寬字體。

光這樣說,其實也無法理解它們,直接上效果圖比較能說明問題。

可以看到 serif 在默認的字體上,增加了襯線。而 nonospace 限制了每個字符的寬度,讓它們達到一個等寬的效果。

等寬其實很好理解,襯線到底是什么意思?這里引用維基百科的一張圖,就能很直觀的說明問題。

襯線其實就是字體邊緣的那一點點小啾啾。

3.3 android:fontFamily

fontFamily 看著像是對 typeface 的一次加強,從它的可選項就能看出來,它更細致的區分了字體的樣式。

fontFamily 的可選項還是很多的,這里就不一一列舉了。不過需要注意,有一些字體的設置是有版本限制的。

例如:sans-serif-medium 是需要 Android 5.0 的版本才支持的。

下面直接舉幾個例子看看效果了:

需要注意的是,如果同時配置了 typeface 和 fontFamily ,將使用 fontFamily 配置的字體。

而除了 typeface 和 fontFamily 會有沖突之外,它們倆都是可以配合 typeStyle 屬性一起使用的,也就是說,這里配置的字體,都是可以再加粗或者加斜體。

四、利用主題修改全局字體

如果你能說服你的設計師,接受系統字體的話,你可以在 Theme 中,去配置你需要的默認字體。

在 application 中,通過 android:theme 來配置一個 App 的主題。一般新創建的項目,都是 @style/AppTheme 。在其中追加關于字體的屬性 android:fontFamily,它就可以完成對全局設置一個系統字體。當然你可以對一個單獨的 TextView 配置一個特別的字體,都是可以接受的。

五、使用自定義字體

有時候,Android 系統默認的字體已經無法滿足我們的需求了,這個時候我們就會需要使用一些定制的特殊字體。

關于字體,這里推薦兩個網站,可以下載到免費的字體供我們使用。

https://fonts.google.com/

https://www.1001freefonts.com/

字體文件,通常都是設計師提供給我們的,一般都是 .ttf(TrueType) 或者 .otf(OpenType) 這兩種格式的,比較常用的是 .ttf 格式的。

通常我們會把字體文件放再 assets 目錄下,想要加載字體文件,需要使用到 Typeface 這個類,它其中提供了一些 Api ,用于幫助我們來加載一個我們自定義的字體文件。

例如下面的例子,是一個通用的做法。

而 Typeface 并不只是為了加載一些自定義的字體文件,系統內置的字體,也是通過 Typeface 來管理的,可以說它就是 Android 的字體大管家。

好了,今天就到這里。

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2016-05-20 11:14:55

內容緩存 傳輸策略優

2016-05-20 11:26:54

客戶端優化 直播推流

2016-05-16 14:00:39

UCloud 直播云

2016-05-16 12:08:08

UCloud 直播云

2017-08-28 16:40:07

Region切分觸發策略

2017-12-08 10:42:49

HBase切分細節

2016-05-12 14:54:39

UCloud

2019-11-04 09:07:48

DevOps互聯網IT

2021-03-11 16:07:40

鴻蒙HarmonyOS應用開發

2025-05-16 09:34:10

2018-04-26 16:15:02

數據庫MySQLMySQL 8.0

2018-03-19 14:43:28

2017-10-24 14:57:58

AI人工智能機器學習

2021-07-01 09:00:00

安全數字化轉型滲透

2024-07-02 11:16:21

2009-06-24 14:10:22

2017-02-24 12:29:20

Android Thi開發板硬件

2021-06-17 13:40:47

區塊鏈比特幣公有鏈

2023-09-11 08:51:23

LinkedList雙向鏈表線程

2021-10-06 16:21:32

類型對象Typescript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本成人在线免费视频 | 国产一区二区 | 久久精品二区亚洲w码 | 亚洲一一在线 | 久久一区二区三区四区五区 | 一区二区在线不卡 | 日韩视频区| 91视频在线看 | www精品美女久久久tv | 欧美日韩成人在线 | 日本在线视频一区二区 | 日韩精品视频在线播放 | 一区二区三区免费 | 日韩精品一二三 | 国产午夜精品一区二区三区四区 | 午夜久久久 | 神马久久香蕉 | 欧美精品一二三 | 婷婷精品 | 视频在线亚洲 | 天天做日日做 | 欧美成人免费在线视频 | 国产精品一区二区久久久久 | 中文亚洲视频 | 国产乱码精品一区二区三区忘忧草 | 激情a| www.亚洲| 久久久青草婷婷精品综合日韩 | 日韩精品一区二区三区在线观看 | 黄网站免费在线观看 | 久久精品国产一区二区三区 | 久久久99精品免费观看 | 欧美日韩视频 | 成人影院在线视频 | 天天色天天射天天干 | 国产精品免费一区二区三区四区 | 伊人网站在线 | 欧美国产精品一区二区三区 | 欧美一区永久视频免费观看 | 国产露脸国语对白在线 | 亚洲久在线 |