织梦CMS - 轻松建站从此开始!

沙龙国际_salon365.com_沙龙国际www.salon365.com

当前位置: 主页 > 沙龙网上娱乐 >

(沙龙网上娱乐) dp转换为px 和 sp转换为px

时间:2017-07-22 18:01来源:未知 作者:admin 点击:
问题一: dp转px,在网上搜到的答案中都是这么写的: public static int dp2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale 0.5f);} 为

问题一:
dp转px,在网上搜到的答案中都是这么写的:

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

为什么后面要加上0.5?

问题二:
在网上搜到dp和sp大体一样,只不过考虑到了用户有可能设置了自定义的字体缩放偏好,所以有了这个sp单位,那么sp这个单位应该如何转换为像素值呢(考虑用户自定义字体缩放偏好)?


我在android.util.TypedValue类中找到了这个方法,可以完成换算

public static float applyDimension(int unit, float value, DisplayMetrics metrics)
{
    switch (unit) {
        case COMPLEX_UNIT_PX:
            return value;
        case COMPLEX_UNIT_DIP:
            return value * metrics.density;
        case COMPLEX_UNIT_SP:
            return value * metrics.scaledDensity;
        case COMPLEX_UNIT_PT:
            return value * metrics.xdpi * (1.0f/72);
        case COMPLEX_UNIT_IN:
            return value * metrics.xdpi;
        case COMPLEX_UNIT_MM:
            return value * metrics.xdpi * (1.0f/25.4f);
    }
    return 0;
}
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容