做Android开发的时候,一些软件会要求一些特殊字体,我们需要引入外部的ttf格式的字体到程序中,具体操作步骤为:
在安卓应用程序的目录assets中新建fonts目录,将我们需要使用的ttf字体文件复制进去(otf格式的直接把后缀名改为ttf的就行了),然后代码:
// 将字体文件保存在assets/fonts/目录下,在程序中通过如下方式实例化自定义字体: Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/DroidSansThai.ttf"); // 应用字体 textView.setTypeface(typeFace);
PS:1.如果想在此基础上再次对字体进行加粗,在界面配置的XML文件中使用android:textStyle="bold"是徒劳的,木有效果,此时怎么做? 我们可以依旧在代码中控制,加上一行代码: et_note.getPaint().setFakeBoldText(true);就可以实现了
如果想整个界面都使用同样的字体,可以使用批处理,新增一个Java类,如下:
代码会用来加载所有的基于TextView的文本组件(TextView、Button、RadioButton、ToggleButton等等),而无需考虑界面的布局层级如何。(内存浪费较大)
另外ttf 字体库文件都比较大,会增加安装包的体积哦
public
class
FontManager {
public
static
void
changeFonts(ViewGroup root, Activity act) {
Typeface tf = Typeface.createFromAsset(act.getAssets(),
"fonts/xxx.ttf"
);
for
(
int
i =
0
; i < root.getChildCount(); i++) {
View v = root.getChildAt(i);
if
(v
instanceof
TextView) {
((TextView) v).setTypeface(tf);
}
else
if
(v
instanceof
Button) {
((Button) v).setTypeface(tf);
}
else
if
(v
instanceof
EditText) {
((EditText) v).setTypeface(tf);
}
else
if
(v
instanceof
ViewGroup) {
changeFonts((ViewGroup) v, act);
}
}
}
}
更多:https://segmentfault.com/q/1010000000494116