一、自定义字体
1.android Typeface使用TTF字体文件设置字体
我们可以在程序中放入ttf字体文件,在程序中使用Typeface设置字体。
第一步,在assets目录下新建fonts目录,把ttf字体文件放到这。
第二步,程序中调用:
1.
AssetManager mgr=getAssets();
//得到AssetManager
2.
3.
Typeface tf=Typeface.createFromAsset(mgr,
"fonts/ttf.ttf"
);
//根据路径得到Typeface
4.
5.
tv=findViewById(R.id.textview);
6.
7.
tv.setTypeface(tf);
//设置字体
2.在xml文件中使用android:textStyle=”bold” 可以将英文设置成粗体, 但是不能将中文设置成粗体,
将中文设置成粗体的方法是:
1.
TextView tv = (TextView)findViewById(R.id.TextView01);
2.
tv.getPaint().setFakeBoldText(
true
);
//中文仿“粗体”--使用TextPaint的仿“粗体”设置setFakeBoldText为true。
注意:部分字体中文无效,虽然不会报错,但是对中文无效。
二、使用RoBoto
自从 Android 4.0后默认字体就使用了Roboto,下面介绍一下使用方法:
1.
android:fontFamily=
"sans-serif"
// roboto regular
2.
android:fontFamily=
"sans-serif-light"
// roboto light
3.
android:fontFamily=
"sans-serif-condensed"
// roboto condensed
4.
android:fontFamily=
"sans-serif-thin"
// roboto thin (android 4.2)
5.
//in combination with
6.
android:textStyle=
"normal|bold|italic"
可用的参数:
Regular
Italic
Bold
Bold-italic
Light
Light-italic
Thin
Thin-italic
Condensed regular
Condensed italic
Condensed bold
Condensed bold-italic
在开发中可能会涉及到对于组件的字体或文本的字体的修改,可以通过Spannable来进行修改:
01.
TextView tv =
new
TextView(
this
);
02.
tv.setText(
"字体大小进行设置"
);
03.
//创建Spannable 对象
04.
Spannable span =
new
SpannableString(tv.getText());
05.
/*通过setSpan(Object ,int start,int end,int flag)对特定的内容进行设置
06.
其中 AbsoluteSizeSpan 是决定字体大小
07.
*/
08.
span.setSpan(
new
AbsoluteSizeSpan(
11
),
0
,
2
,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
09.
span.setSpan(
new
AbsoluteSizeSpan(
21
),
3
,
6
,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
10.
11.
tv.setText(span);