在APP中鲫竞,字體的大小單位一般會(huì)用sp,然而在改變系統(tǒng)字體大小時(shí)逼蒙,App字體就會(huì)隨著系統(tǒng)字體大小改變而改變从绘,這就可能造成APP布局的錯(cuò)位。
造成這種情況的原因是其做,sp單位除了受屏幕密度影響外顶考,還受到用戶的字體大小影響,通常情況下妖泄,建議使用sp來跟隨用戶字體大小設(shè)置驹沿。除非一些特殊的情況,不想跟隨系統(tǒng)字體變化的,可以使用dp”蹈胡。按照這么說渊季,布局寬高固定寫死的地方應(yīng)該統(tǒng)一用dp顯示字體,因?yàn)橐坏┯脩粼谠O(shè)置中調(diào)大字體罚渐,寬高寫死的布局顯示就亂了却汉。
針對這種情況,查找網(wǎng)上的方法也很多荷并,大多是這樣的方法 (重寫 Application 或 BaseActivity 中的方法):
/**
* 重寫 getResource 方法合砂,防止系統(tǒng)字體影響
*/
@Override
public Resources getResources() {//禁止app字體大小跟隨系統(tǒng)字體大小調(diào)節(jié)
Resources resources = super.getResources();
if (resources != null && resources.getConfiguration().fontScale != 1.0f) {
android.content.res.Configuration configuration = resources.getConfiguration();
configuration.fontScale = 1.0f;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
return resources;
}
如何有更好的方案,請給與連接或說明