Android APP字体大小,不随系统的字体大小变化而变化的方法

来源:互联网 发布:企业数据标准化 编辑:程序博客网 时间:2024/05/16 03:15

今天在工作中遇到了UI上的字体跟随系统的变化,导致整体变样了,所以就想了让APP不随系统字体变化,网上查了一下,了解从android4.0起系统设置的”显示“提供设置字体大小的选项。这个设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。

原文参考:http://blog.csdn.net/zhuqiang1002/article/details/38756127

后面我直接将textview集成了重新写一个类引用,然后重写getResource这个方法,吧fontScale设为1表示原来大小。

@Overridepublic Resources getResources() {    Resources res = super.getResources();    Configuration config=new Configuration();       //config.setToDefaults();    config.fontScale=1.0f;    res.updateConfiguration(config, res.getDisplayMetrics());    return res;}
另外一种是动态去,超过原大小不变

private void setNewFileSizeText(TextView textView, int size) {float textsize = 12;Configuration mconfig = new Configuration();float s =  mconfig.fontScale;if (textView != null) {if (size <= 0) {textView.setVisibility(View.GONE);} else if (size >= 100) {if( s >= 1.0f)textsize = textsize/s;textView.setText(String.valueOf(99) + "+");textView.setTextSize(textsize);textView.setVisibility(View.VISIBLE);} else {textView.setTextSize(textsize);textView.setText(String.valueOf(size));textView.setVisibility(View.VISIBLE);}}}



0 0