----------
2015-08-13日更新
发现了一个开源的第三方项目!!!真的屌炸天了
可以快速的全局设置!!!!
简直不敢详细,而且还事存在了好久的项目了!!
方法很简单,就是使用github上的一个开源库Calligraphy,使用步骤只需要以下几步
- 在AndroidStudio中添加依赖,搜索calligraphy点击添加即可(如果还没有使用AndroidStudio,推荐切换到此google官方开发工具)
- 自定义Application,在onCreate里面配置默认字体
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder().setDefaultFontPath("fonts/Roboto-Bold.ttf").setFontAttrId(R.attr.fontPath).build());
- 在Activity中重写attachBaseContext方法(推荐使用一个BaseActivity,app中的所有Activity继承自BaseActivity)
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
这样,TextView的默认字体就成了你设置的Roboto-Bold字体,如果要单独对TextView设置其他字体,可以直接在xml中或style中使用fontPath,多种使用方法请参考github上Calligraphy的Readme文档和Sample示例程序。
----------
如果只是单独设置一两个,使用这个代码就可以了.别的方法不用考虑了,性能不怎么样,
https://docs.gradle.org/current/userguide/userguide_single.html 下面介绍了三种方案..但你可以不用看了,还是直接看下我写的这个总结吧
Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/YourCustomFont.ttf");
方法很简单,就是使用github上的一个开源库Calligraphy,使用步骤只需要以下几步
- 在AndroidStudio中添加依赖,搜索calligraphy点击添加即可(如果还没有使用AndroidStudio,推荐切换到此google官方开发工具)
- 自定义Application,在onCreate里面配置默认字体
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder().setDefaultFontPath("fonts/Roboto-Bold.ttf").setFontAttrId(R.attr.fontPath).build());
- 在Activity中重写attachBaseContext方法(推荐使用一个BaseActivity,app中的所有Activity继承自BaseActivity)
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
这样,TextView的默认字体就成了你设置的Roboto-Bold字体,如果要单独对TextView设置其他字体,可以直接在xml中或style中使用fontPath,多种使用方法请参考github上Calligraphy的Readme文档和Sample示例程序。