4

如何更改我的 android 应用程序的整个字体?之前我在 github 上看到了这篇文章values-v21。该解决方案仅适用于低于 api 21 的设备。对于 android 5,即使我们单独添加一个文件夹,此方法也不起作用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>
4

2 回答 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>
于 2015-07-04T09:28:45.957 回答
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 资产/字体文件夹中。您可以为 Button、EditText 等执行此操作。

于 2015-07-04T10:20:18.417 回答