自己的字体格式"/>
Android整个应用中设置自己的字体格式
在我们自己的应用中设置字体效果如下:
之前没有设置应用字体使用的是默认的系统自带的字体效果图如下(左),使用字体后效果如下(右):
具体步骤分如下两步就可以搞定了:
1:首先下载字体,这里我使用的下载的是Google开源的思源字体文件,字体文件名为NotoSanHans.ttf,放入AndroidStudio的
该资源文件放在assets目录下。
2:应用中都会有一个Application的扩展类,我的项目中是MyApplication.java类。在该类中
//字体地址,一般放置在assets/fonts目录
String fontPath = "NotoSansHans.ttf";
在该类的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();}
}
/*-----------------------------------更改系统字体代码部分结束-----------------------------*/
更多推荐
Android整个应用中设置自己的字体格式
发布评论