android - 遍历布局中的 View 并更改字体

标签 android layout view typeface

我想知道是否有一种方法可以遍历布局中的所有 View 并更改所有具有文本的 View (即 TextView、CheckBox、EditText 等)的字体。我有一个称为 setContentView() 的布局,想知道是否有一种简单的方法可以做到这一点。

我可以使用 findViewById() 手动完成它,但我宁愿有一种简单的方法来遍历它们。

谢谢, -克拉克-

最佳答案

也许这会让你开始:

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 - 遍历布局中的 View 并更改字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366439/

相关文章:

android - 如何使 Android SlidingDrawer 从左侧滑出?

CSS Noob 真的可以在布局和定位方面使用一些熟练的帮助

jquery - 我如何使用 jQuery 来确定 div 何时超出右侧的视野?

java - ColorFilter 仅特定颜色

java - 基于 MATLAB 的 Java 程序

android - 从服务器向 Android 应用程序发送命令

android - 在 Android 中获取音频文件持续时间的最佳方法是什么?

css - 为什么我的布局在 IE<6 中有效,但在 IE>7 中无效?

android - 如何从另一个类调用引用 (TextView)findViewById

java - 创建数据库 View 与创建 Hibernate 映射 - 性能