Android加载字体包及封装的方法是什么
                                            这篇文章将为大家详细讲解有关Android加载字体包及封装的方法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联公司专注于企业成都营销网站建设、网站重做改版、长宁网站定制设计、自适应品牌网站建设、H5建站、成都做商城网站、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为长宁等各大城市提供网站开发制作服务。
TextView加载字体包
在 Android 中,若需要使得某个TextView加载字体包,使用以下方式即可:
Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/Bold.otf"); textView.setTypeface(typeFace);
至于字体包的位置:

通过以上方法,可以使得一个TextView加载某种字体包,但是,还有这种需求:
- 部分TextView加载字体包
- 每个TextView加载的字体包不一定一样
这时,我们就需要稍微封装下,将其封装成一个自定义TextView类,若需要使用字体包,则加载该类,同时,可以根据xml里面的值,从而加载不同的字体包。
封装
定义属性值
首先,我们需要从xml里面获取值,因此,需要在attr中进行属性值的定义:

这里我只定义了两种属性,大家可以根据需求进行增减。
创建自定义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);
 }
}获取属性值
//获取参数
  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);
  //获取参数
  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加载字体包及封装的方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网页题目:Android加载字体包及封装的方法是什么
转载来于:http://www.scyingshan.cn/article/jescsc.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 