android修改應(yīng)用字體

在有些需求里面需要修改默認(rèn)的字體,可以直接在Application里面寫如下代碼

FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/xxx.ttf");//修改系統(tǒng)字體
FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/yyy.ttf");

FontsOverride類如下

public final class FontsOverride {
 
 public static void setDefaultFont(Context context,
            String staticTypefaceFieldName, String fontAssetName) {
        final Typeface regular = Typeface.createFromAsset(context.getAssets(),
                fontAssetName);
        replaceFont(staticTypefaceFieldName, regular);
    }
 
    protected static void replaceFont(String staticTypefaceFieldName,
            final Typeface newTypeface) {
        try {
            final Field staticField = Typeface.class
                    .getDeclaredField(staticTypefaceFieldName);
            staticField.setAccessible(true);
            staticField.set(null, newTypeface);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,269評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 盛夏,早晨的陽光也是如此炙熱。 正逢集日,我們母女三人各有事務(wù),便出發(fā)去鎮(zhèn)上了。我得去拍寸照,復(fù)印身份證件;媽媽要...
    春天的野林子閱讀 2,163評論 3 1
  • 二十三點(diǎn),小巴緩緩?fù)O隆?夜色中,路邊的燈紅酒綠,一如我的心情,看似璀璨。 上了車,習(xí)慣的找個后排靠后的無人座。 ...
    湯姆福特閱讀 152評論 4 0