Android系统设置大号字体后布局错乱的问题
2015-08-16 17:57
489 查看
从android4.0起“系统设置”的“显示”提供设置字体大小的选项。这个设置会影响到所有以sp为单位的字体适配,所以很多app在设置了系统字体后会变得面目全非。那么应该怎么解决这个问题呢?想要解决这个问题,首先我们要找到这个问题的原因。
在Android手机上调整字体的显示大小后,安卓手机中Configuration的fontScale的值会随之更改,正常情况下此值为1.0,修改字体大小后,其对应的值如下所示:
Small:0.85
Normal:1.0
Large:1.15
Extra large:1.3
正是因为此值的变化,所以才导致了字体的放大和缩小。
既然是因为此值的变化导致了字体的变大和缩小,为了解决这个问题,我们就可以在代码中动态的改变此值,将此值改为正常大小即1.0。代码如下:
Resources resource = getResources();
Configuration configuration =resource.getConfiguration();
configuration .fontScale = 1.0f;//设置字体的缩放比例
resource.updateConfiguration(configuration , resource.getDisplayMetrics());
最好将此段代码封装成一个方法放在onResume中,这样可以确保程序启动后,退到后台再修改字体返回到程序时,依然可以显示我们指定的字体缩放大小。
在Android手机上调整字体的显示大小后,安卓手机中Configuration的fontScale的值会随之更改,正常情况下此值为1.0,修改字体大小后,其对应的值如下所示:
Small:0.85
Normal:1.0
Large:1.15
Extra large:1.3
正是因为此值的变化,所以才导致了字体的放大和缩小。
既然是因为此值的变化导致了字体的变大和缩小,为了解决这个问题,我们就可以在代码中动态的改变此值,将此值改为正常大小即1.0。代码如下:
Resources resource = getResources();
Configuration configuration =resource.getConfiguration();
configuration .fontScale = 1.0f;//设置字体的缩放比例
resource.updateConfiguration(configuration , resource.getDisplayMetrics());
最好将此段代码封装成一个方法放在onResume中,这样可以确保程序启动后,退到后台再修改字体返回到程序时,依然可以显示我们指定的字体缩放大小。
相关文章推荐
- android开发之Menu的使用
- Android获得当前系统时间、星期几、周几
- Android中的测试
- Android中自定义Toast
- AndroidFrameWork
- 【Android高级】Dalvik虚拟机及其类加载器讲解
- android图片选择由于版本导致的oom解决办法
- android初学者的探索之路(Android音乐播放器二)
- Android ADB工具-进行文件操作(三)
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- Android实现带动画的下拉刷新RecyclerView
- android中一个应用程序启动另外一个应用程序,并传递数据。
- Android Studio 初次使用
- Android 控件沿贝塞尔曲线运动(上)
- Android知识点清单(不断更新)
- Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)
- 断其一指------异步任务(AsyncTask)
- Android 开源框架Universal-Image-Loader完全解析(七)---从源代码分析Android-Universal-Image-Loader图片下载技巧
- Fresco使用总结
- Android 开源框架Universal-Image-Loader完全解析(六)--- UNIVERSAL IMAGE LOADER.PART 2---ImageLoaderConfiguratio