前言
最近在做項(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不會根據(jù)系統(tǒng)字體大小設(shè)置變化而變化挽拔。簡單,有效但校。就是改起來有點(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中重寫這倆方法就好了术裸。親測有效。
個(gè)人原創(chuàng)文章亭枷,請尊重原創(chuàng)袭艺,轉(zhuǎn)載請注明出處:吳磊的簡書:http://www.reibang.com/p/a4c29ec5712f
歡迎聯(lián)系我、提供工作機(jī)會:
Github:https://github.com/MondeoWu/GestureUnlock
E-mail:331948214@qq.com
QQ:331948214