APP中文本大小字体和系统字体大小的关系
2016-01-23 22:23
295 查看
从android4.0起系统设置的“显示”提供设置字体大小的选项。这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。下面是解决方案
虽然google推荐使用sp作为字体的单位,但实际的开发过程中通常是根据UIUE的设计稿来换算 sp(px换算sp)。而sp即使在同一种密度下其值也不尽相同。比如在240dpi的设备,如果是480x800分辨率这个值通常是1.5倍 (scaledDensity=1.5),如果是480xZ(z>800)那么这个值有可能大于1.5。这无疑给设备的适配带来更多的困难和陷阱。所以个人通常建议使用dpi来作为字体的单位,对于个别app不需要根据系统字体的大小来改变的,可以在activity基类(app中所有的activity都应该有继承于我们自己定义的一个BaseActivity类)中加上以下code:
Resources res = super.getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.updateConfiguration(config,res.getDisplayMetrics() );
虽然google推荐使用sp作为字体的单位,但实际的开发过程中通常是根据UIUE的设计稿来换算 sp(px换算sp)。而sp即使在同一种密度下其值也不尽相同。比如在240dpi的设备,如果是480x800分辨率这个值通常是1.5倍 (scaledDensity=1.5),如果是480xZ(z>800)那么这个值有可能大于1.5。这无疑给设备的适配带来更多的困难和陷阱。所以个人通常建议使用dpi来作为字体的单位,对于个别app不需要根据系统字体的大小来改变的,可以在activity基类(app中所有的activity都应该有继承于我们自己定义的一个BaseActivity类)中加上以下code:
@Override
public Resources getResources() {
Resources res = super.getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.updateConfiguration(config,res.getDisplayMetrics() );
return res;
}
相关文章推荐
- Android Activity finish() 流程走读
- java泛型中的? 、Object、? extends Object的区别
- [置顶] LibGDX教程——重建Flappy Bird——(6) 碰撞检测及细节处理
- 自己动手写Android数据库框架
- 【依库APP】快速的开发一个潮流时尚装扮类APP模型
- 016: class and objects > 多重继承与多态的例子
- 解决angular单个页面只能加载一个ng-app的问题
- Android的init过程(二):初始化语言(init.rc)解析
- Android 内存泄漏检查工具LeakCanary源碼浅析
- Cordova-Android创建及HelloWorld demo
- Android中消息处理机制-Handler剖析
- 【Unity Shader】概述以及Diffuse shader和unity5新功能Standard shader
- Android使用DrawerLayout和ToolBar实现仿知乎侧滑菜单
- Android中Adapter初步的学习
- Android技巧一:启动屏+新功能左右导航逻辑
- Android Studio——理解Intent和Intent Filter
- Mac Android Studio 快捷键
- swift手记-4
- Android事件分发机制简述
- Android app的文件缓存目录:app的内置Flash私有目录和 外置sdcard目录