前言
最近在做項(xiàng)目的時(shí)候,碰到了這個(gè)問題,具體是:app中字體大小用了sp,然后修改手機(jī)系統(tǒng)字體大小后,sp設(shè)置的文字大小跟著系統(tǒng)變了,導(dǎo)致了布局?jǐn)D壓以及一系列的問題,經(jīng)過研究找到了解決方法,在此記錄一下。
解決方案
- 把所有sp改成dp,因?yàn)閐p不會(huì)根據(jù)系統(tǒng)字體大小設(shè)置變化而變化。簡(jiǎn)單,有效。就是改起來有點(diǎn)累。
- 通過代碼來控制,讓app字體不隨系統(tǒng)字體變化而變化,具體代碼如下:
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (newConfig.fontScale != 1)//非默認(rèn)值
getResources();
super.onConfigurationChanged(newConfig);
}
@Override
public Resources getResources() {
Resources res = super.getResources();
if (res.getConfiguration().fontScale != 1) {//非默認(rèn)值
Configuration newConfig = new Configuration();
newConfig.setToDefaults();//設(shè)置默認(rèn)
res.updateConfiguration(newConfig, res.getDisplayMetrics());
}
return res;
}
再Application中或者BaseActivity中重寫這倆方法就好了。親測(cè)有效。
個(gè)人原創(chuàng)文章,請(qǐng)尊重原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處:吳磊的簡(jiǎn)書:http://www.itdecent.cn/p/a4c29ec5712f
歡迎聯(lián)系我、提供工作機(jī)會(huì):
Github:https://github.com/MondeoWu/GestureUnlock
E-mail:331948214@qq.com
QQ:331948214