Android App字体不受系统字体大小影响

由于公司的App面向的用户有小部分人是“大叔”级别的,他们喜欢把系统字体设置得很大,为了App字体不受系统字体大小影响,于是在网上搜了一下,大概有2中解决办法。

更新App的配置

简单的来说,就是重写我们BaseActivity的getResources方法

@Override
public void onConfigurationChanged(Configuration newConfig) {
    if (newConfig.fontScale != 1)//非默认值
        getResources();    
    super.onConfigurationChanged(newConfig);
}

@Override
public Resources getResources() {
     Resources res = super.getResources();
     if (res.getConfiguration().fontScale != 1) {//非默认值
        Configuration newConfig = new Configuration();       
        newConfig.setToDefaults();//设置默认        
        res.updateConfiguration(newConfig, res.getDisplayMetrics()); 
     }    
     return res;
}

这样有个坏处,我尝试使用过这种方法,会导致UI线程执行到这里会有卡顿现象!

所以我们可以使用第二种方法。

使用dp来设置文字的大小

我们设置字体大小,一般都使用“sp”作为单位的,我们来说说“sp”和“dp”的区别:

  • 使用sp作为字体大小单位,会随着系统的字体大小改变
  • dp作为单位则不会

所以我们在设置字体时,如果不想布局由于系统字体大小影响的,可以使用“dp”作为字体的单位。

没有这方便需求的,我们还是以“sp”作为字体单位。

这里只做一下记录!!

你可能感兴趣的:(Android,Android问题集)