直播平台源码,Android 中的字体大小适配
直播平台源码,Android 中的字体大小适配
小号字体下,会比较精致,不作处理。对于大号字体,使其fontScale强制改为指定值,以解决布局错乱的情况。
封装为工具类如下
public class FontCompatUtils {
public static final float MAX_FONT_SCALE = 1.10F; //可自行修改最大缩放值
public static final String TAG = "FontCompatUtils";
private static Float fontScalePercent = null;
public static Resources getResources(Resources res) {
Configuration configuration = res.getConfiguration();
if (fontScalePercent == null) {
fontScalePercent = 1 / configuration.fontScale;
}
if (shouldChangeFontScale(configuration)) {//非默认值
Configuration newConfig = new Configuration();
newConfig.setToDefaults();//设置默认
//configuration.fontScale = MAX_FONT_SCALE;
res.updateConfiguration(newConfig, res.getDisplayMetrics());
}
return res;
}
/**
* 是否需要改变字体缩放级别
*
* @param configuration
* @return
*/
public static boolean shouldChangeFontScale(Configuration configuration) {
return configuration.fontScale > MAX_FONT_SCALE;
}
/**
* 字体缩放比例
*
* @return
*/
public static Float getFontScalePercent() {
if (fontScalePercent == null) {
return 1F;
}
return fontScalePercent;
}
}
然后,在Application和BaseActivity中,重写getResources和onConfigurationChanged方法
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (FontCompatUtils.shouldChangeFontScale(newConfig))
getResources();
super.onConfigurationChanged(newConfig);
}
@Override
public Resources getResources() {
return FontCompatUtils.getResources(super.getResources());
}
以上就是直播平台源码,Android 中的字体大小适配, 更多内容欢迎关注之后的文章
浙公网安备 33010602011771号