Android 自定義字體方案

CharleneEth 7年前發布 | 7K 次閱讀 安卓開發 Android開發 移動開發

在應用中需要配置不同的字體,而 Android 只能在 xml 中配置系統默認提供的四種字體,需要自定義的字體都需要在 Java 代碼中配置.

Android 默認方案

你可以通過ID查找到View,然后挨個為它們設置字體。字體放置于 assets/fonts 文件夾下面.

Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/YourCustomFont.ttf");
TextView view = (TextView) findViewById(R.id.activity_main_header);
view.setTypeface(customFont);

改良

如果每次都這樣加載,界面就會卡頓,所以我提取出來了一個工具類.

示例中涉及到了兩個自定義的字體,用枚舉實現了單例模式,將字體存儲在靜態變量中,避免每次都去 assets 中加載,更改之后頁面就流暢了.

public enum TypefaceUtils {
    TYPEFACE;

    private static Typeface typeface50;
    private static Typeface typeface55;

    public void set50Typeface(TextView textView) {
        if (typeface50 == null)
            typeface50 = Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/HYQiHei-50S.otf");
        textView.setTypeface(typeface50);
    }

    public void set55Typeface(TextView textView) {
        if (typeface55 == null)
            typeface55 = Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/HYQiHei-55S.otf");
        textView.setTypeface(typeface55);
    }
}

參考鏈接

 

來自:http://www.jianshu.com/p/6778d048d8c6

 

 本文由用戶 CharleneEth 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!