Android如何缩放应用中的字体大小
2016-01-09 11:20
731 查看
公司的项目中有一个需求,就是在项目中实现一个缩放字体大小的功能。之前想了很久没有想出什么简便的方法,老觉得给TextView加上几个字体不同大小的style很麻烦,并且要改变应用全局的字体大小感觉实现起来很不方便。后来在stackoverflow上找到了一个解决办法,附上地址:how to set scale in my own android application
然后我写一个工具类实现了APP字体全局缩放的功能,该方法仅仅会改变当前应用而不会影响其他的应用,代码如下:
只需要传一个activity和一个布尔型的参数(是否放大)即可,由于我们项目中只需要放大字体即可,工具类可以根据项目需求来自己定制放大的比例等,根据项目需求大家可以自行更改。需要注意的一点是:
该方法要在setContentView(R.layout.yourlayout)之前调用,调用之后会使得整个应用的字体都发生缩放效果,大家可以在BaseActivity中调用该方法
另外不要在Applicaiton类中使用该方法,一些设备可能会崩溃而导致闪退。
然后我写一个工具类实现了APP字体全局缩放的功能,该方法仅仅会改变当前应用而不会影响其他的应用,代码如下:
public class TextScaleUtils { public static void scaleTextSize(Activity activity, boolean isScale) { float size; Configuration configuration = activity.getResources().getConfiguration(); if (isScale) { size = 1.25f; } else { size = 1f; } configuration.fontScale = size; //0.85 small size, 1 normal size, 1.15 big etc DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); metrics.scaledDensity = configuration.fontScale * metrics.density; activity.getBaseContext().getResources().updateConfiguration(configuration, metrics);//更新全局的配置 } }
只需要传一个activity和一个布尔型的参数(是否放大)即可,由于我们项目中只需要放大字体即可,工具类可以根据项目需求来自己定制放大的比例等,根据项目需求大家可以自行更改。需要注意的一点是:
该方法要在setContentView(R.layout.yourlayout)之前调用,调用之后会使得整个应用的字体都发生缩放效果,大家可以在BaseActivity中调用该方法
另外不要在Applicaiton类中使用该方法,一些设备可能会崩溃而导致闪退。
相关文章推荐
- Android中插件开发篇之----应用换肤原理解析
- Android API Document Download
- android-电话窗口弹出以及LayoutInflater和inflate的用法
- Android广播接收器
- RemoteService之AIDL进程间通信 ---基于AndroidStudio
- Android学习路径图
- 修改Android系统默认关闭“验证应用”功能
- Android 省市区三级联动
- Android最佳实践指南
- Android学习笔记3
- Android创建Virtual Devices时出错
- 关于Android自定义view 你所需要知道的基本函数
- 关于Android自定义view 你所需要知道的基本函数
- android 无线调试
- Android Volley完全解析
- Android不透明度16进制值
- Android 虚拟机中与PC键盘对应的按键
- 解决Android SDK Manager更新、下载速度慢
- android中textview显示不同颜色
- Android布局属性详解