控制不同的文字字体
TextView里有许多与字形相关的方法,如使用setTextSize()来改变文字大小、setTypeface()来指定使用的字体,接下来的范例有两个按钮,一个控制TextView的字体,另一个控制字体的大小。这里会用到外部资源assets文件夹,引用外部的字体文件(True Type Font),再通过Typeface类的createFromAsset方法,让TextView可通过setTypeface来顺利改变字体。
主要代码如下:
textView01.setTextSize(30);
/*必须实现在assets文件夹下创建fonts文件夹
* 并放入要使用的字体(*.ttf)
* 并提供相对路径给CreateFromAsset()来创建Typeface对象*/
textView01.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/SIMKAL.TTF"));
将外部字体放在assets/fonts文件夹内,就可以通过AssetsManage来引用外部资源。此处特别要留意的是,字体文件必须是符合Ture Type Font格式。否则即便程序编译时不出错,在运行时也会发生无法更改字体的情况。
上述程序里使用了Typeface类,并使用外部字体文件来改变文字的字体。不过目前Android的版本似乎在吃吃Ture Type字体方面有些问题,即便是用了不支持的字体,Android也不会发出错误的信息,而是以Droid Sans默认字体替换,所以当遇到使用外部字体却又发现字体没有变化时,原因就是处在Android没有支持这个字体,而非程序本身发生错误。
除了通过Typeface外,也可以通过defaultStyle来使用Andoid内置的几款字体Typeface,下面为内置的常数:
...类型...
|
.......常数名称......
|
...........概 要..........
|
....Value....
|
.........................................
|
Int
|
BOLD
|
|
1
|
0X00000001
|
Int
|
BOLD_ITALIC
|
|
3
|
0X00000003
|
Typeface
|
DEFAULT
|
默认NORMAL typeface对象
|
|
|
Typeface
|
DEFAULT_BOLD
|
默认BOLD typeface对象
|
|
|
Int
|
ITALIC
|
|
2
|
0x00000002
|
Typeface
|
MONOSPACE
|
NORMAL风格的默认monospace typeface
|
|
|
Int
|
NORMAL
|
|
0
|
0x00000000
|
Typeface
|
SANS_SERIF
|
NORMAL风格的默认sans serif typeface
|
|
|
Typeface
|
SERIF
|
NORMAL风格的默认serif typeface
|
|
|
除了将字体文件放入手机当中,也可以将字体以import方式导入项目资源,方法如下:
Resources.StyledAttributes resFont = getContext().obtainStyledAttributes(attrs , R.styleable.UnicodeTextView);
String fontName = resFont.getString(R.styleable.UnicodeTextView_font);
If(fontName != null)
{
/*在这里处理更改字体的程序片段*/
}
分享到:
相关推荐
英文像素字体-------计算机字体
fa --图标字体库--
CSS3_中文手册【圆角-多背景-用户自定义字体-文字阴影等等】
字体下载-英文字体-英文字体biko.zip
日文字体,实测Python里面System.font.Font()能够完全兼容,然后使用python制作日文界面UI或者其他内容。
ext中文字体处理---------------------------------------
使用于win7系统字体文件缺失导致数学符号无法使用的现象。