<分区>
我正在开发 LGE Nexus 5x,它在 Android 7.0 上运行,我想限制任何系统字体更改以更改我的应用程序字体大小。
我已经经历了this question ,并且 我试过this answer这对 Marshmallow 非常有效。但不适用于牛轧糖。
在我的应用程序类中,我添加了这些行;
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
adjustFontScale(new Configuration(newConfig));
}
public void adjustFontScale(Configuration configuration) {
if (configuration != null && configuration.fontScale != 1.0) {
configuration.fontScale = (float) 1.0;
DisplayMetrics metrics = getResources().getDisplayMetrics();
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
getBaseContext().getResources().updateConfiguration(configuration, metrics);
}
}
在 list 中,在application tag
下我已经声明了;
android:configChanges="fontScale"
但这在 Nougat 设备上不起作用,即使 onConfigurationChanged
被无一异常(exception)地调用和执行。
我们将不胜感激。