您的位置:首页 > 移动开发 > Android开发

Android如何缩放应用中的字体大小

2016-01-09 11:20 731 查看
公司的项目中有一个需求,就是在项目中实现一个缩放字体大小的功能。之前想了很久没有想出什么简便的方法,老觉得给TextView加上几个字体不同大小的style很麻烦,并且要改变应用全局的字体大小感觉实现起来很不方便。后来在stackoverflow上找到了一个解决办法,附上地址:how to set scale in my own android application

然后我写一个工具类实现了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类中使用该方法,一些设备可能会崩溃而导致闪退。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: