(原创)设置APP内的字体

在进行开发时,有时候需要设置自己的字体,那么Android中是如何设置自己的字体的呢?

先来看一下页面效果


可以看到这是自己的字体,而不是Android系统自带的字体,下面来讲一下实现方式

具体可以有两种

第一,在Activity等页面中通过findviewbyId找到这个带有text的控件

然后调用以下方法

Typeface typeFace =
        Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf");


  textView.setTypeface(typeFace);
先看createFromAsset方法中的两个参数,第一个代表是读取资源目录assets,那么后面一个字符串就好理解了,就是资源目录assets下的fonts的字体文件。

Android默认用assets下的fonts文件夹存储字体格式的文件,相关的字体大家可以去网上搜索,一般的字体比如楷体或者行书都很好找到。

那么每次这样调用会显得比较麻烦,我们也可以采用第二种方式

直接定义一个类继承含有文本的控件(在安卓中这些控件包括edittext,textview等)

这里我们仍然以textview为例,下面是我写的一个自定义的textview,大家可以仿造这种方式重写其他的控件

/**
 * 自定义TextView
 */
public class CustomFontTextView extends TextView {
    public CustomFontTextView(Context context) {
        this(context, null);
    }

    public CustomFontTextView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public CustomFontTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init(context);
    }

    /**
     * 设置字体
     *
     * @param context
     */
    private void init(Context context) {
        AssetManager assets = context.getAssets();
        Typeface font = Typeface.createFromAsset(assets, MyCode.FONTS);
        setTypeface(font);

    }
}

可以看到在init()方法里仍然是采用的这种方式,另外顺便一说

自定义控件时,画笔Pain也有这个setTpyeface方法哦,也是用来绘制字体的

更多关于自定义控件的问题,可以参考这篇博客

也是我转载他人的一个介绍

还是蛮详细的

http://blog.csdn.net/android_xiong_st/article/details/78401548




猜你喜欢

转载自blog.csdn.net/android_xiong_st/article/details/78788598
今日推荐