1. 前言
Android手机系统的设置中,有个小功能,可以全局调整字体大小。这就导致了APP里面的字体也受影响了,字体变小或变大,对原来布局会产生影响,用户体验不好。
2. 解决方案
查了一下资料,发现很容易解决。我们只需要重写Activity的 getResources() 方法就行了,例如:写在BaseActivity里面。代码如下:
package com.fantasy.base;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
/**
* 活动基础类
*/
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
/**
* 重写getResources()方法,让APP的字体不受系统设置字体大小影响
*/
@Override
public Resources getResources() {
Resources res = super.getResources();
Configuration config = new Configuration();
config.setToDefaults();
res.updateConfiguration(config, res.getDisplayMetrics());
return res;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}