Android 控件设置字体【Typeface】

时间:2023-02-01 20:45:00

Android 控件设置字体字体设置

这里是以TextView为例,其他显示文字的控件通用

Android提供的字体—–Typeface

(1)常用的字体类型名称:

Typeface.DEFAULT //常规字体类型

Typeface.DEFAULT_BOLD //黑体字体类型

Typeface.MONOSPACE //等宽字体类型

Typeface.SERIF //衬线字体类型

Typeface.SANS_SERIF //无衬线体字体类型

(2)常用的字体风格名称:

Typeface.BOLD //粗体

Typeface.BOLD_ITALIC //粗斜体

Typeface.ITALIC //斜体

Typeface.NORMAL //常规

(3)在xml文件中引用字体:

使用android:typeFace来设置:

android:typeface=”sans”

(4)在java文件中引用Android自带字体—–create

有两种创建字体的方式:
1)

Typeface create (Typeface family, 
int style)

family为(1)中常用的字体类型;
style为(2)常用的字体风格

eg1:
Typeface font = Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD);
p.setTypeface( font );

2)

Typeface create (String familyName, 
int style)

familyName 为(1)中常用的字体名称;
style为(2)常用的字体风格

eg2:
String familyName = “宋体”;
Typeface font = Typeface.create(familyName,Typeface.BOLD);
p.setTypeface(font);

3)如果依然使用默认字体,仅仅改变字体风格

 Typeface mTypeface = Typeface.defaultFromStyle(Typeface.ITALIC);

(5)在java文件中引用非Android自带字体

非安卓自带字体,我们需要自己去下载或是有的公司会自定义字体。但是个人建议,如果不是整个应用要使用某个字体而是某个字要使用某个字体,最好不要使用专门的字体。【下载字体后将xxx.ttf文件添加到项目中,如果有中文需要重命名】
1)将.ttf字体库拷贝到Assets文件夹的引用方法

 //从assert中获取有资源,获得app的assert,采用getAserts(),通过给出在assert/下面的相对路径。
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/HanYi.ttf");
//title是之间定义的控件
title.setTypeface(face);

2)将.ttf字体库拷贝到SD卡上可以通过createFromFile(String path)和createFromFile(File path)

//在实际使用中,字体库可能存在于SD卡上,可以采用createFromFile()来替代createFromAsset。
String path = "/hpdata/fonts/hwapu-microhei+diy.ttf";
File file = new File(path);
if (file.exists()) {
Typeface mTypeface = Typeface.createFromFile(file);
}
//或者使用createFromFile(String path)
try {
Typeface mTypeface = Typeface.createFromFile("/hpdata/fonts/hwapu-microhei+diy.ttf");
} catch (Exception e) {
e.printStackTrace();
}