更改Android应用程序的所有字体类型

4
我该如何更改我的Android应用程序的整个字体? 之前我在Github上看到了这篇文章:this post。该解决方案仅适用于API小于21的设备。 对于Android 5,即使我们单独添加了一个values-v21文件夹和styles.xml,该方法也不起作用。
这是我的values-v21/styles.xml
<resources>

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">

    </style>

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:typeface">serif</item>
    </style>

</resources>

尝试这个:https://dev59.com/0nE85IYBdhLWcg3wkkbK - koutuk
这个解决方案不适用于API V21。 - Hamidreza Salehi
2个回答

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

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

<style name="RobotoButtonStyle" parent="android:Widget.Holo.Button">
    <item name="android:fontFamily">sans-serif-light</item>
</style>

然后将主题应用到您的应用程序中。
<application
    android:theme="@style/AppTheme" >
</application>

对我没有用。顺便说一下,似乎只有文本视图和按钮会被更改。我想将整个应用程序字体更改为我的自定义字体之一。 - Hamidreza Salehi
看看这个:https://dev59.com/0nE85IYBdhLWcg3wkkbK 他们正在尝试做一些事情。加入他们吧。 - Azim Ansari

0
一个建议是创建一个扩展Android TextView的自定义TextView。我在下面包含了示例代码。
public class CustomTextView extends TextView{

public CustomTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
    // TODO Auto-generated constructor stub
}
public CustomTextView(Context context) {
    super(context);
    init();
    // TODO Auto-generated constructor stub
}
public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
    // TODO Auto-generated constructor stub
}
private void init(){
    Typeface font_type=Typeface.createFromAsset(getContext().getAssets(), "font/ProximaNova_Reg.ttf");
    setTypeface(font_type);
}

}

将您的字体放在 android asset/font 文件夹中。您可以为 Button、EditText 等做到这一点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接