Android 开发之修改 app 的字体大小

新的需求(可参见 微信和QQ改变字体):

  1. app 字体不随着系统字体大小变化
  2. app 设置中有设置字体大小的开关,变大以后,整个 app 字体变大。

解决方案:(字体需要采用 dp 为单位,不能使用 sp 为单位)

  • 解决1. 在 activity 和 fragment 的基类中,修改属性 fontScale 来实现的
private void initFontScale() { 
 Configuration configuration = getResources().getConfiguration();
 configuration.fontScale = (float) 1; 
 //0.85 小, 1 标准大小, 1.15 大,1.3 超大 ,1.45 特大 
 DisplayMetrics metrics = new DisplayMetrics();
 getWindowManager().getDefaultDisplay().getMetrics(metrics); 
 metrics.scaledDensity = configuration.fontScale * metrics.density;
 getBaseContext().getResources().updateConfiguration(configuration, metrics); 
}
  • 解决2:通过设置获取到一个默认字体大小的倍数,然后保存到 SharePreference 中,然后重启 activity ,加载控件的时候,让控件默认字体大小乘以存储的倍数

链接:http://www.cnblogs.com/xqxacm/p/5779762.html

  • 解决3: 通过抽取为 style ,在设置中修改大小,然后重启 app,通过给 activity 设置 theme 进行替换

链接:http://blog.sina.com.cn/s/blog_3e333c4a0101igti.html

链接:http://blog.csdn.net/dlmu2001/article/details/7414411

链接:http://blog.csdn.net/wanjf_912/article/details/7641184

链接:http://www.jianshu.com/p/61b79e7f88fc

链接:http://hellorheaven.iteye.com/blog/2076403

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,002评论 25 709
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 11,333评论 12 197
  • 太长了,还是转载吧...今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源...
    庞哈哈哈12138阅读 20,301评论 3 283
  • 由上图可知,项目分层1个app目录,4个测试目录app目录分为: 4个测试目录分别是:androidTest: U...
    zhuanghongji阅读 668评论 1 0
  • 读了《白鹿原》,可谓是百感交集。 一个“昏天黑地”的时代,一个流传许久的神奇传说,在这片广袤的土地上演绎着一段段深...
    l358阅读 1,004评论 0 1