直播平台源码,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 中的字体大小适配, 更多内容欢迎关注之后的文章

 

posted @ 2022-07-25 14:16  云豹科技-苏凌霄  阅读(110)  评论(0)    收藏  举报