Android 修改全局自定义字体样式(字形,大小)※

应用场景:

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

    原文作者:Hoking
    原文地址: https://blog.csdn.net/ma_hoking/article/details/24881497
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞