Android中给控件设置字体

来源:互联网 发布:度小月担仔面 知乎 编辑:程序博客网 时间:2024/05/22 00:13

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