美文网首页
dp、sp及区别

dp、sp及区别

作者: 鹿小纯0831 | 来源:发表于2019-03-20 14:32 被阅读0次
    • px : 其实就是像素单位,比如我们通常说的手机分辨列表800*400都是px的单位 。
    • dp : 虚拟像素,在不同的像素密度的设备上会自动适配。
    • sp : 同dp相似,还会根据用户的字体大小偏好来缩放 。

    一、dp

    dp也叫dip,是device independent pixels。设备不依赖像素的一个单位。在不同的像素密度的设备上会自动适配,比如:
    在320x480分辨率,像素密度为160,1dp=1px ;
    在480x800分辨率,像素密度为240,1dp=1.5px ;
    计算公式:px = dp * (dpi/160)

    使用dp作为单位的,会根据不同的设备进行转化,适配不同机型。所以建议在长度宽度的数值使用dp作为单位。

    dp与px值转换的工具类:
    public class DensityUtil {
    
        /**
         * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
         */
        public static int dp2px(Context context, float dpValue) {
            final float scale = context.getResources().getDisplayMetrics().density;
            return (int) (dpValue * scale + 0.5f);
        }
    
        /**
         * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
         */
        public static int px2dp(Context context, float pxValue) {
            final float scale = context.getResources().getDisplayMetrics().density;
            return (int) (pxValue / scale + 0.5f);
        }
    }
    

    二、sp

    sp作为字体大小单位,会随着系统的字体大小改变,而dp作为单位则不会。所以建议在字体大小的数值要使用sp作为单位

    相关文章

      网友评论

          本文标题:dp、sp及区别

          本文链接:https://www.haomeiwen.com/subject/ixizmqtx.html