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);
}
}
}
}
