更改android应用程序的所有字体



如何更改android应用程序的整个字体?之前我在github上看到过这篇文章。该解决方案仅适用于api低于21的设备。对于android 5,即使我们单独添加一个带有styles.xmlvalues-v21文件夹,这种方法也不起作用。

这是我的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>
<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>

中的一个建议是创建扩展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等执行此操作。

相关内容

  • 没有找到相关文章

最新更新