在安卓高版本,以下方法设置字体大小不随系统字体大小变化已经无效,更改系统字体大小时,res.configuration.fontScale获得的结果一直是1,
override fun getResources(): Resources {
val res = super.getResources()
if (res.configuration.fontScale != 1f) { //非默认值
val newConfig = Configuration()
newConfig.setToDefaults() //设置默认
res.updateConfiguration(newConfig, res.displayMetrics)
}
return res
}
需要在BaseActivity里重写
override fun getResources(): Resources {
val resources = super.getResources();
val configContext = createConfigurationContext(resources.configuration)
return configContext.resources.apply {
configuration.fontScale = 1.0f
displayMetrics.scaledDensity = displayMetrics.density * configuration.fontScale
}
}