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

前端之家收集整理的这篇文章主要介绍了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相关文章