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