2.1 android字型顯示框架圖
android顯示字型medium字型主要流程:
a).view布局檔案或者**中選擇medium字型
b).framework根據view設定的字型選擇相應medium的字型庫
c).根據framework提供的字型庫skia引擎繪製相應medium的字型
主要流程圖如下:
3. notosanscjksc-medium中文字型使用方法
android可以在布局檔案和**中使用中文medium的字型樣式。
3.1 布局檔案使用中文notosanscjksc-medium字型
在資源布局檔案中相關view中設定android:fontfamily=「sans-serif-medium」,例如在textview中:
1.
3.2 **中使用notosanscjksc-medium字型
1. textview textview = (textview) findviewbyid(r.id.textview);
2. typeface font = typeface.create("sans-serif-medium", typeface.normal);
3. textview.settypeface(font);
android啟動載入notosanscjksc-medium流程
如果要系統預設支援medium字型,必須在android在啟動過程預載入我們新增的notosanscjksc-medium字型庫,載入完成後,我們可以參考使用英文medium字型方式使用中文notosanscjksc-medium字型庫。
android啟動載入相關模組如下:
zygoteinit:
負責系統各種類、鏈結庫、資源等進行初始化,這裡使用preload載入字型庫資源管理類typeface的初始化。
typeface:
字型資源主要管理者,其主要解析font.xml相關的字型庫進行載入,建立對應的字型樣式(normal、medium和bold)設定以及對上層提供建立字型功能的呼叫。最重要的是會載入我們預置到系統中notosanscjksc-medium.otf,建立notosanscjksc-medium字型的(normal、bold和medium)三種樣式。
native:
接受上層傳遞的字型庫,建立對應的字型庫和對應字型樣式。這裡根據上層指定的字型庫使用skia影象引擎對相關字型進行繪製。 然後顯示到對應的view中
android啟動載入notosanscjksc-medium字型庫主要時序圖如下所示:
notosanscjksc-medium預置到系統
5.1.1 打包字型資源到原始碼中
拷貝支援medium中文字型庫(notosanscjksc-medium.otf)到原始碼frameworks/base/data/fonts目錄下
5.1.2 修改編譯打包規則檔案
1、修改frameworks/base/data/fonts/fonts.mk,新增如下內容
1. product_packages := \
2. + notosanscjksc-medium.otf \
2、修改frameworks/base/data/fonts/android.mk ,新增如下內容:
1. font_src_files := \
2. notosanscjksc-medium.otf \
3. androidclock.ttf
5.1.3 新增字型庫notosanscjksc-medium到到font.xml配置檔案
1. --- a/data/fonts/fonts.xml
2. +++ b/data/fonts/fonts.xml
3. @@ -474,13 +474,13 @@
4. 5. notosanscjk-regular.ttc
6.
7. + notosanscjksc-medium.otf
8.
9.
10. 11. notosanscjk-regular.ttc
12.
13. + notosanscjksc-medium.otf
14.
15. 16. notosanscjk-regular.ttc
Android新增onKeyLongPress事件
在應用開發當中,有的時候需要捕捉按鍵的長按事件,從android2.0開始,activity當中就包含public 方法boolean onkeylongpress int keycode keyevent event 按照正常的開發流程,為了響應onkeylongpress事件,我們需要過載onk...
python 新增中文注釋
通常,python源 必須完全由ascii集合組成,如果直接在python中新增中文注釋的時候,python執行時會引發異常,告知非ascii字元語法錯誤。syntaxerror non ascii character xd5 in file d project python sort quick ...
python 新增中文注釋
通常,python源 必須完全由ascii集合組成,如果直接在python中新增中文注釋的時候,python執行時會引發異常,告知非ascii字元語法錯誤。syntaxerror non ascii character xd5 in file d project python sort quick ...