Android 单位转换

来源:互联网 发布:阴阳路抄墓碑 知乎 编辑:程序博客网 时间:2024/05/22 08:49
    /**     * @author AcmenXD     * @version v1.0     * @github https://github.com/AcmenXD     * @date 2016/11/22 14:36     * @detail 单位转换     */    /**     * 根据手机的分辨率从 dp 的单位转成 px(像素)     */    public static float dp2px(Context pContext, float dp) {        return dp2px(pContext.getResources(), dp);    }    public static float dp2px(Resources resources, float dp) {        final float scale = resources.getDisplayMetrics().density;        return dp * scale + 0.5f;    }    /**     * 根据手机的分辨率从 px(像素)的单位转成 dp     */    public static float px2dp(Context pContext, float px) {        return px2dp(pContext.getResources(), px);    }    public static float px2dp(Resources resources, float px) {        final float scale = resources.getDisplayMetrics().density;        return px / scale + 0.5f;    }    /**     * 根据手机的分辨率从 sp 的单位转成 px(像素)     */    public static float sp2px(Context pContext, float sp) {        return sp2px(pContext.getResources(), sp);    }    public static float sp2px(Resources resources, float sp) {        final float scale = resources.getDisplayMetrics().scaledDensity;        return sp * scale + 0.5f;    }    /**     * 根据手机的分辨率从 px(像素)的单位转成 sp     */    public static float px2sp(Context pContext, float px) {        return px2sp(pContext.getResources(), px);    }    public static float px2sp(Resources resources, float px) {        final float scale = resources.getDisplayMetrics().scaledDensity;        return px / scale + 0.5f;    }
0 0
原创粉丝点击