1下载ttf字体到assets下
2 Application的oncreate()通过反射方法中修改APP默认字体
@Override
public void onCreate() {
super.onCreate();
replaceSystemDefaultFont(this);
}
public void replaceSystemDefaultFont(Context context) {
//這里我们修改的是MoNOSPACE,是因为我们在主题里给app设置的默认字体就是monospace,设置其他的也
可以
replaceTypefaceField("MONOSPACE", createTypeface(context));
}
//通过字体地址创建自定义字体
private Typeface createTypeface(Context context) {
return Typeface.createFromAsset(context.getAssets(), "din.ttf");
}
//关键--》通过修改MONOSPACE字体为自定义的字体达到修改app默认字体的目的
private void replaceTypefaceField(String fieldName, Object value) {
try {
Field defaultField = Typeface.class.getDeclaredField(fieldName);
defaultField.setAccessible(true);
defaultField.set(null, value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
3 给应用添加默认字体(在Application下的主题添加默认的TypeFace)如下
<style name="AppTheme" parent="android:Theme.Light">
<item name="android:typeface">monospace</item>
</style>
丁丁优字体下载