FontSettingUtil.java 11.2 KB
package com.wd.capability.layout.uitls;

import android.widget.TextView;

import com.wd.capability.layout.R;
import com.wd.foundation.wdkit.utils.SpUtils;
import com.wd.foundation.wdkit.utils.TextViewUtils;


/**
 * 描述:字号大小设置工具类
 *
 * @author : lvjinhui
 * @since: 2024/4/7
 */
public class FontSettingUtil {

    public static final String FONT_SIZE_SMALL = "1";
    public static final String FONT_SIZE_NORMAL = "2";
    public static final String FONT_SIZE_BIG = "3";
    public static final String FONT_SIZE_V_BIG = "4";

    public static String getSettingFontSize(){
        String settingTextSize = SpUtils.getSettingTextSize();
        if (FONT_SIZE_SMALL.equals(settingTextSize)){
            return "小";
        }else if (FONT_SIZE_NORMAL.equals(settingTextSize)){
            return "标准";
        }else if (FONT_SIZE_BIG.equals(settingTextSize)){
            return "大";
        }else if (FONT_SIZE_V_BIG.equals(settingTextSize)){
            return "特大";
        }
        return "标准";
    }


    /**
     * 根据字号设置大小
     * 16,18,20,24
     * @param tv
     */
    public static void setTextFontSize(TextView tv){
        /*
          字号/行高=0.72
         */
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp16);
            tv.setLineSpacing(6,1);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp20);
            tv.setLineSpacing(8,1);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp24);
            tv.setLineSpacing(7,1);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
            tv.setLineSpacing(7,1);
        }
    }

    /**
     * 时间轴时间节点设置文字大小
     * 12,14,16,20
     * @param tv
     * @param lineSpace 是否需要行高
     */
    public static void setTimeLineTextFontSize(TextView tv, boolean lineSpace){
        /*
          字号/行高=0.72
         */
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp12);
            if (lineSpace){
                tv.setLineSpacing(6,1);
            }
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp16);
            if (lineSpace){
                tv.setLineSpacing(8,1);
            }
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp20);
            if (lineSpace){
                tv.setLineSpacing(7,1);
            }
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
            if (lineSpace){
                tv.setLineSpacing(7,1);
            }
        }
    }


    /**
     * 横滑卡设置文字大小
     * 13,15,18,20
     * @param tv
     */
    public static void setSidewaysTextFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp13);
            tv.setLineSpacing(5,1);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
            tv.setLineSpacing(7,1);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp20);
            tv.setLineSpacing(8,1);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp15);
            tv.setLineSpacing(6,1);
        }
    }



    /**
     * 横滑卡设置文字大小
     * 14,16,18,22
     * 地方精选卡 Zh_Single_Row-04
     * @param tv
     */
    public static void setCompSingleRowFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
            tv.setLineSpacing(6,1);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
            tv.setLineSpacing(7,1);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp22);
            tv.setLineSpacing(9,1);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp16);
            tv.setLineSpacing(6,1);
        }
    }


    /**
     * 人民号主题卡设置文字大小
     * 15,17,19,23
     * 人民号主题卡 Zh_Single_Column-04
     * @param tv
     */
    public static void setCompSingleRowThemeFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp15);
            tv.setLineSpacing(6,1);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp19);
            tv.setLineSpacing(7,1);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp23);
            tv.setLineSpacing(9,1);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp17);
            tv.setLineSpacing(6,1);
        }
    }

    /**
     * 早晚报
     * 22,24,26,30
     * 人民号主题卡 Zh_Single_Column-04
     * @param tv
     */
    public static void setDailyNewsTitleFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp22);
            tv.setLineSpacing(8,1);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp26);
            tv.setLineSpacing(10,1);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp30);
            tv.setLineSpacing(11,1);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp24);
            tv.setLineSpacing(9,1);
        }
    }

    /**
     * 父评论设置文字大小
     * 14,16,18,22
     * @param tv
     */
    public static void setCommentParentFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp22);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp16);
        }
    }

    /**
     * 子评论设置文字大小
     * 14,14,18,22
     * @param tv
     */
    public static void setCommentChildFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp22);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
        }
    }

    /**
     * 动态详情声明文字大小设置
     * 12,12,14,18
     * @param tv
     */
    public static void setStatementFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp12);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp12);
        }
    }


    /**
     * 音频专题设置文字大小
     * 14,16,18,22
     * @param tv
     */
    public static void setAudioTopicTextFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp18);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp22);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp16);
        }
    }

    /**
     * 金刚位适老化
     * 11,13,15,19
     * @param tv
     */
    public static void setRowGoldenTextFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp11);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp13);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp19);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp13);
        }
    }

    /**
     * 人问政问题卡 描述设置文字大小
     * 13,15,17,19
     * 人民号主题卡 Zh_Single_Column-04
     * @param tv
     */
    public static void setPoliticsLeaveWordFontSize(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp13);
            tv.setLineSpacing(5,1);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp17);
            tv.setLineSpacing(6,1);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp19);
            tv.setLineSpacing(7,1);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp15);
            tv.setLineSpacing(6,1);
        }
    }

    /**
     * 人问政问题卡 描述设置文字大小
     * 12,14,16,21
     * @param tv
     */
    public static void setPoliticsLeaveWordFontSize1(TextView tv){
        String type = SpUtils.getSettingTextSize();
        //标准
        if ("1".equals(type)){
            //小
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp12);
        }else if ("3".equals(type)){
            //大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp16);
        }else if ("4".equals(type)){
            //特大
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp21);
        }else {
            TextViewUtils.setTextSizeByPx(tv, R.dimen.rmrb_dp14);
        }
    }

}