[Android] 使用 Calligraphy 自訂字型

要更改 Android App 的字型,正常的做法是使用 setTypeface,改變 TextView 的字型。可是一旦要變更的 TextView 很多的時候,修改起來相當費時。

Calligraphy 這個函式庫使用注入的方式,自動尋找 Activity 中 TextView,並設置其使用的字型。

先安裝函式庫,然後將你要變更的字型檔放到 assets/ 目錄下
dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.2.0'
}

在 Application 的 onCleate 初始要使用的字型
@Override
public void onCreate() {
    super.onCreate();
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                     .setDefaultFontPath("fonts/Roboto-Regular.ttf")
                     .setFontAttrId(R.attr.fontPath)
                     .build()
            );
    //....
}
然後在 Activity 的 attachBaseContext 方法中注入 CalligraphyContextWrapper。
@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}

這個 Activity 中的 TextView 字型就會全部改變了,如果有 BaseActivity 的話,建議加在 BaseActivity。

相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置