解決Android7.0以上 APP字體大小,不隨系統(tǒng)的字體大小變化而變化的方法
在activity基類(app中所有的activity都應(yīng)該有繼承于我們自己定義的一個(gè)BaseActivity類)中加上以下code:
@Override
public ResourcesgetResources() {
Resources res =super.getResources();
? ? Configuration newConfig =new Configuration();
? ? //控制字體縮放 1.0為默認(rèn)
? ? newConfig.fontScale =1.0f;
? ? DisplayMetrics displayMetrics = res.getDisplayMetrics();
? ? if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
//7.0以上系統(tǒng)手機(jī) 顯示大小 對APP的影響
? ? ? ? if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (displayMetrics.density < DisplayMetrics.DENSITY_DEVICE_STABLE / (float) DisplayMetrics.DENSITY_DEFAULT) {
displayMetrics.densityDpi = (int) (DisplayMetrics.DENSITY_DEVICE_STABLE *0.92);
? ? ? ? ? ? }else {
displayMetrics.densityDpi = DisplayMetrics.DENSITY_DEVICE_STABLE;
? ? ? ? ? ? }
newConfig.densityDpi = displayMetrics.densityDpi;
? ? ? ? }
createConfigurationContext(newConfig);
? ? }
res.updateConfiguration(newConfig, displayMetrics);
? ? return res;
}