解決修改系統(tǒng)字體大小APP字體跟著變大的問題

前言

最近在做項(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容