更改整个应用程序所有textview的字体,包括按钮和edittexts

时间:2015-06-17 06:34:00

标签: android android-fonts

我想将应用字体更改为roboto。我也试过this link

但它只更改textview字体,而不是更改listview适配器XML字体。

如何将整个应用字体更改为roboto

2 个答案:

答案 0 :(得分:3)

将它放在你的style.xml

<style name="RobotoTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">sans-serif-light</item>
</style>

你也必须改变它。

<style name="AppTheme" parent="AppBaseTheme">
<item name="android:textViewStyle">@style/RobotoTextViewStyle</item>

开发者网站提供了相关信息。 让我知道进展

答案 1 :(得分:0)

您可以将内容视图/或任何视图组传递给此函数和字体。

public void replaceFonts(ViewGroup viewTree, TypeFace typeface) {
    Stack<ViewGroup> stackOfViewGroup = new Stack<ViewGroup>();
    stackOfViewGroup.push(viewTree);
    while (!stackOfViewGroup.isEmpty()) {
        ViewGroup tree = stackOfViewGroup.pop();
        for (int i = 0; i < tree.getChildCount(); i++) {
            View child = tree.getChildAt(i);
            if (child instanceof ViewGroup) {
                // recursive call
                stackOfViewGroup.push((ViewGroup) child);
            }else if (child instanceof Button) {
              ((Button) child).setTypeface(typeface);
            }else if (child instanceof EditText) {
               ((EditText) child).setTypeface(typeface);
            } else if (child instanceof TextView) {
                // base case
                ((TextView) child).setTypeface(typeface);
            }
        }
    }
}

或创建自定义Button,EditText,TextView。并将其添加到视图组。在Google上搜索FontTextView。