1. 程式人生 > >Android Chromium:成功地獲取到使用者自定義的系統預設字型設定

Android Chromium:成功地獲取到使用者自定義的系統預設字型設定

這個事情的原理是這樣的:Android系統官方是不支援修改系統預設字型的,所有能夠修改的情況都是OEM產商修改了framework層的程式碼,同時集成了高許可權的預安裝應用服務。

怎麼做的呢?

其實很簡單:修改android.content.res.Configuration類,Configuration類儲存系統級別影響所有的Activity View顯示的設定。如果Configuration類有改變,則會自動重新啟動所有的Activity。

比方說,可以加一個String fontPath或者Typeface typeface屬性。(官方預設的只有fontSize)

新增的屬性對於外部應用而言是不可見的,因為外部普通應用只能基於官方的Android SDK編譯。解決方法是通過Java動態反射呼叫。

那麼,外部應用初始啟動時如何獲取當前的Configuration物件例項呢?

很簡單:Activity(Context) --> getResources()得到Resources物件 --> getConfiguration():OK。