第一步
下载ttf字体资源
第二步
在Android studio中选择project,右键main文件夹,新建文件夹,选择Assets文件夹,可以自定义新建一个文件夹,把ttf资源文件放进去
第三步
新建一个类继承Application
public class MobieApplication extends Application {
private static final String TAG = "MoblieApplication";
//字体地址,一般放置在assets/fonts目录
String fontPath = "fonts/simkai.ttf";
@Override
public void onCreate() {
super.onCreate();
replaceSystemDefaultFont(this, fontPath);
}
public void replaceSystemDefaultFont(Context context, String fontPath) {
//這里我们修改的是MoNOSPACE,是因为我们在主题里给app设置的默认字体就是monospace,设置其他的也可以
replaceTypefaceField("MONOSPACE", createTypeface(context, fontPath));
}
//通过字体地址创建自定义字体
private Typeface createTypeface(Context context, String fontPath) {
return Typeface.createFromAsset(context.getAssets(), fontPath);
}
//关键--》通过修改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();
}
}
}
第四步
在resource资源文件中的styles文件里的系统主题资源样式配置中添加
<item name="android:typeface">monospace</item>//在自定义的类中赋值
第五步
在AndroidManifest文件的application添加 android:name=".MobieApplication"//自定义的类