Android手机系统的设置中,有个小功能,可以全局调整字体大小。这就导致了APP里面的字体也受影响了,字体变小或变大,对原来布局会产生影响,用户体验不好。
查了一下资料,发现很容易解决。我们只需要重写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(); } }