常用工具类和方法

单位换算

(1).sp转换为px:

public static float sp2px(Context context, float spValue) {
    float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
    return  spValue * fontScale;
}

public static int sp2px(Context context, float spValue) {
    float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
    return  (int)(spValue * fontScale + 0.5);
}

(2).px转换为sp:

public static int px2sp(Context context, float pxValue) {
    float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
    return (int) (pxValue / fontScale + 0.5f);
}

public static float px2sp(Context context, float pxValue) {
    float fontScale = context.getResources().getDisplayMetrics().scaledDensity;
    return pxValue / fontScale;
}

(3).dp转换为px:

public static int dp2px(Context context, float dpValue) {
    float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dpValue * scale + 0.5f);
}

public static float dp2px(Context context, float dpValue) {
    float scale = context.getResources().getDisplayMetrics().density;
    return dpValue * scale;
}

(4).px转换为dp:

public static int px2dp(Context context, float pxValue) {
    float scale = context.getResources().getDisplayMetrics().density;
    return (int) (pxValue / scale + 0.5f);
}
    
public static float px2dp(Context context, float pxValue) {
    float scale = context.getResources().getDisplayMetrics().density;
    return pxValue / scale;
}