您的位置:首页 > 移动开发 > Android开发

Android 全局修改字体

2016-07-20 16:28 330 查看
        最进在开发项目时,产品提了一个需求,把全局的字体风格修改成自定义的字体。

        修改字体的大致方案有:

        一、自定义控件。将我们项目中使用到的控件全部自定义,并指定相应的字体;

        二、封装一个字体辅助类,在辅助类中修改字体:遍历页面上的所有控件,并修改字体。

        对于一个大项目来说,第一种方法明显是不尽人意的,在修改系统字体的时候,几乎要把布局全部改一下,这是程序员非常不乐意做的。第二种方法看起来还不错,但是有一个缺陷,就是在页面控件比较多的时候,会出现卡顿现象。

        于是我在网上找了一些解决方案,基本上都是上面两种。后来,找到了一个修改系统字体的类库,用了一下,感觉还是挺不错的,类库使用方法:

        一、将类库依赖到项目中;

        二、在onCreate中初始化系统字体:@Override
public void onCreate() {
super.onCreate();
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/Roboto-RobotoRegular.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
//....
}       三、重写attachBaseContext方法:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
      当然,也可以直接在布局文件中设置fontpath。
      好了,介绍了最好的解决方案,其他的方案就不具体介绍了,希望本博客能对各位有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: