這篇文章將為大家詳細講解有關Android加載字體包及封裝的方法是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都營銷網(wǎng)站建設、網(wǎng)站重做改版、長寧網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5建站、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、外貿(mào)營銷網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為長寧等各大城市提供網(wǎng)站開發(fā)制作服務。
TextView加載字體包
在 Android 中,若需要使得某個TextView
加載字體包,使用以下方式即可:
Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/Bold.otf"); textView.setTypeface(typeFace);
至于字體包的位置:
通過以上方法,可以使得一個TextView
加載某種字體包,但是,還有這種需求:
TextView
加載字體包TextView
加載的字體包不一定一樣這時,我們就需要稍微封裝下,將其封裝成一個自定義TextView
類,若需要使用字體包,則加載該類,同時,可以根據(jù)xml
里面的值,從而加載不同的字體包。
封裝
定義屬性值
首先,我們需要從xml
里面獲取值,因此,需要在attr
中進行屬性值的定義:
這里我只定義了兩種屬性,大家可以根據(jù)需求進行增減。
創(chuàng)建自定義TextView
public class FontTextView extends AppCompatTextView { public FontTextView(Context context) { super(context); } public FontTextView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public FontTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } }
獲取屬性值
//獲取參數(shù) TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.FontTextView, defStyleAttr, 0); int fontType = a.getInt(R.styleable.FontTextView_fontType, 1);
進行值判斷并加載不同的字體包
private final int BOLD = 1; private final int HEAVY = 2; String fontPath = null; switch (fontType) { case BOLD: fontPath = "fonts/Bold.otf"; break; case HEAVY: fontPath = "fonts/Heavy.otf"; break; default: } //設置字體 if (!TextUtils.isEmpty(fontPath)) { Typeface typeFace = Typeface.createFromAsset(getContext().getAssets(), fontPath); setTypeface(typeFace); }
全部源碼
public class FontTextView extends AppCompatTextView { private final int BOLD = 1; private final int HEAVY = 2; public FontTextView(Context context) { super(context); } public FontTextView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public FontTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); //獲取參數(shù) TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.FontTextView, defStyleAttr, 0); int fontType = a.getInt(R.styleable.FontTextView_fontType, 1); String fontPath = null; switch (fontType) { case BOLD: fontPath = "fonts/Bold.otf"; break; case HEAVY: fontPath = "fonts/Heavy.otf"; break; default: } //設置字體 if (!TextUtils.isEmpty(fontPath)) { Typeface typeFace = Typeface.createFromAsset(getContext().getAssets(), fontPath); setTypeface(typeFace); } } }
若需要使用字體包TextView
,使用以下方式即可:
效果
關于Android加載字體包及封裝的方法是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。