Android中给控件设置字体

xiaoxiao2021-02-28  132

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);
转载请注明原文地址: https://www.6miu.com/read-20472.html

最新回复(0)