dp、sp和px的相互转换

来源:互联网 发布:may it be是什么意思 编辑:程序博客网 时间:2024/06/14 19:08
/**     * dp转换为px     */    public static int toPx(Context context, float dpValue) {        final float scale = context.getResources().getDisplayMetrics().density;        int pxValue = (int) (dpValue * scale + 0.5f);        return pxValue;    }//或者  dp转换为px    public static int toPx(float dpValue) {        Resources resources = Resources.getSystem();        float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpValue, resources.getDisplayMetrics());        return (int) px;    }    /**     * px转换为dp     */    public static int toDp(Context context, float pxValue) {        final float scale = context.getResources().getDisplayMetrics().density;        int dpValue = (int) (pxValue / scale + 0.5f);        return dpValue;    }    /**     * px转换为sp     */    public static int toSp(Context context, float pxValue) {        final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;        int spValue = (int) (pxValue / fontScale + 0.5f);        return spValue;    }/**          * 将sp值转换为px值         */          public static int sp2px(Context context, float spValue) {              final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;              return (int) (spValue * fontScale + 0.5f);          }  
原创粉丝点击