原文链接:http://www.cnblogs.com/brainy/archive/2012/05/30/2526538.html
1、Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace
2、在Android中可以引入其他字体 。
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:Android="http://schemas.android.com/apk/res/android" Android:layout_width="fill_parent" Android:layout_height="fill_parent" > <TableRow> <TextView Android:layout_marginRight="4px" Android:text="sans:" Android:textSize="20sp" > </TextView> <!-- 使用默认的sans字体 --> <TextView Android:id="@+id/sans" Android:text="Hello,World" Android:textSize="20sp" Android:typeface="sans" > </TextView> </TableRow> <TableRow> <TextView Android:layout_marginRight="4px" Android:text="serif:" Android:textSize="20sp" > </TextView> <!-- 使用默认的serifs字体 --> <TextView Android:id="@+id/serif" Android:text="Hello,World" Android:textSize="20sp" Android:typeface="serif" > </TextView> </TableRow> <TableRow> <TextView Android:layout_marginRight="4px" Android:text="monospace:" Android:textSize="20sp" > </TextView> <!-- 使用默认的monospace字体 --> <TextView Android:id="@+id/monospace" Android:text="Hello,World" Android:textSize="20sp" Android:typeface="monospace" > </TextView> </TableRow> <!-- 这里没有设定字体,我们将在Java代码中设定 --> <TableRow> <TextView Android:layout_marginRight="4px" Android:text="custom:" Android:textSize="20sp" > </TextView> <TextView Android:id="@+id/custom" Android:text="Hello,World" Android:textSize="20sp" > </TextView> </TableRow> </TableLayout>
// 得到TextView控件对象 TextView textView = (TextView) findViewById(R.id.custom); // 将字体文件保存在assets/fonts/目录下,www.linuxidc.com创建Typeface对象 Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/DroidSansThai.ttf"); // 应用字体 textView.setTypeface(typeFace);
如果想对整个界面的所有控件都应用自定义字体,可以:
package
arui.blog.csdn.net;
import
android.app.Activity;
import
android.graphics.Typeface;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.TextView;
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);
}
}
}
}
下面是两个非常有用的方法,在这里备份一下:
|