应用场景:
在Android的开发过程中,有时候用户需要改变客户端显示的信息的字体大小,这时候去逐个设置是很繁琐的。
注:标题中出现 ※ 的文章,属于较基本的功能实现,有待提高与改善。
解决方法:
为了解决以上的问题,在此提供一种方便的设置方法,当然通过此方法修改部分功能来适配自己的需求。
使用方式:
第一步:获取本Activity下的获取最外层控件代码。
(ViewGroup) this.getWindow().getDecorView();
第二步:设置某Activity下所有可以设置显示字体的组件的方法。
protected void changeFont(ViewGroup root) {
Typeface tf = Typeface.createFromAsset(getAssets(),
"ITCAvantGardeStd-Bk.otf"); //获取所需字体文件
for(int i = 0; i <root.getChildCount(); i++) {
View v = root.getChildAt(i);
if(v instanceof TextView ) {
((TextView)v).setTypeface(tf);
((TextView)v).setTextSize(15);
((TextView)v).setTextColor(Color.GRAY);
} else if(v instanceof Button) {
((Button)v).setTypeface(tf);
((Button)v).setTextSize(15);
((Button)v).setTextColor(Color.GRAY);
} else if(v instanceof EditText) {
((EditText)v).setTypeface(tf);
((EditText)v).setTextSize(15);
((EditText)v).setTextColor(Color.GRAY);
} else if(v instanceof ViewGroup) {
changeFont((ViewGroup)v);
}
}
}