Android 使用自定义Font

Android系统为我们提供的一些字体的同时,我们也可以自定义字体。

让我们来看一下是如何使用自定义字体的具体方法

创建一个assets文件夹

如果你没有,就需要创建一个

在你的Android Studio里,选中文件 ==> 项目右键 ==> New ==> Folder ==> Asstes Folder

custom_font_pic1

默认继续,==> Finish

custom_font_pic2

创建一个font字体文件夹

asstes ==> 右键 ==> new ==> Directory ==> 名称填入“fonts”

custom_font_pic3

创建fonts文件夹完成

custom_font_pic4

复制字体到fonts文件夹下

比如Material Design需要用到的Roboto字体到这里下载,下载完成后解压,复制*.ttf自定义字体到fonts文件夹下

custom_font_pic5

Java 方式

你可以使用Java方式来自定义字体

TextView textView=(TextView) findViewById(R.id.tv_custom_font);
Typeface tf=Typeface.createFromAsset(getAssets(),"fonts/Roboto-Black.ttf");
textView.setTypeface(tf);

custom_font_pic6

XML 方式

你也可以使用XML的方式来自定义字体

创建一个自定义的TextView类

/**
 * Created by shoewann on 5/30/16.
 */

public class MyCTextView extends TextView {

    public MyCTextView(Context context, AttributeSet attrs) {

        super(context, attrs);

        this.setTypeface(Typeface.createFromAsset(context.getAssets(),"fonts/Roboto-Black.ttf"));
    }
}

这个构造方法接受两个参数:

  • Context 上下文
  • 一个设置XML属性,这儿将会被应用到一个全新的TextView上

定义一个自定义的XML

<com.example.shoewann.customfont.MyCTextView
 android:id="@+id/tv_custom_font"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="This is Custom font TextView"
 android:textSize="18sp"
 app:layout_constraintBottom_toBottomOf="@+id/activity_main"
 app:layout_constraintLeft_toLeftOf="@+id/activity_main"
 app:layout_constraintRight_toRightOf="@+id/activity_main"
 app:layout_constraintTop_toTopOf="@+id/activity_main" />

custom_font_pic7

默认字体在哪儿呢?

打开SDK下面的platforms文件夹,在下面你会看到你安装的Android API不同平台

custom_font_pic8

任意打开一个平台的版本,比如android-19文件夹(你会在android-19/data/fonts下发现):

custom_font_pic9

以上简单的介绍了两种方式实现使用自定义字体的具体方法,如果不足,欢迎指正。

0%