Android中给控件设置字体
1.步骤:
①创建改变字体工具类
public class FontUtil {
static public void changeFonts(Context context, ViewGroup root, String font, int size,int color){
Typeface tf = Typeface.createFromAsset(context.getAssets(),font);
for (int i=0;i<root.getChildCount();i++){
View v = root.getChildAt(i);
if (v instanceof TextView){
((TextView)v).setTypeface(tf);
// ((TextView)v).setTextSize((int)(size*metrics.density));
((TextView)v).setTextColor(color);
}else if (v instanceof Button){
}else if (v instanceof EditText){
((TextView)v).setTypeface(tf);
((TextView)v).setTextColor(color);
}else if (v instanceof ViewGroup){
changeFonts(context, (ViewGroup)v, font, size, color);
}
}
}
static public void changeFont(Context context, View element, String font, int size, int color){
Typeface tf = Typeface.createFromAsset(context.getAssets(),font);
if (element instanceof TextView) {
((TextView) element).setTypeface(tf);
((TextView) element).setTextSize(size);
((TextView) element).setTextColor(color);
}else if(element instanceof EditText){
((EditText)element).setTypeface(tf);
}
}
}
②在assets文件夹中存放 .ttf字体文件
③使用:
// 给单个view设置字体
Button myButton = (Button)findViewById(R.id.myButton);
FontUtil.changeFont(context, myButton, "fontFile.ttf", 20, Color.BLACK);
// 给viewGroup设置字体
LinearLayout MyLinearLayout = (LinearLayout)findViewById(R.id.myLinearLayout);
changeFonts(context,(ViewGroup)LinearLayout,"fontFile.ttf", 15, Color.BLUE);