android – 在布局中迭代视图并更改字体

我想知道是否有办法迭代布局中的所有视图并更改所有具有文本的视图(即TextView,CheckBox,EditText等)的字体.我有一个布局,我调用setContentView(),并想知道是否有一个简单的方法来做到这一点.

我可以通过findViewById()手动完成它,但我宁愿用一种简单的方法来迭代它们.

谢谢,
-clark-

解决方法

也许这会让你开始:
protected void changeFonts(ViewGroup root) {

        Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/comicsans.ttf");

        for(int i = 0; i <root.getChildCount(); i++) {
                View v = root.getChildAt(i);
                if(v instanceof TextView ) {
                        ((TextView)v).setTypeface(tf);
                } else if(v instanceof Button) {
                        ((Button)v).setTypeface(tf);
                } else if(v instanceof EditText) {
                        ((EditText)v).setTypeface(tf);
                } else if(v instanceof ViewGroup) {
                        changeFonts((ViewGroup)v);
                }
        }

    }

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...