px、sp、dp、dip、ppi、dpi

px:像素单位,如手机分辨率320px *480px,1px代表屏幕上的一个物理的像素点。

像素即px,是画面中最小的点(单位色块)。像素的大小是没有固定长度值的,不同设备上1个单位像素色块的大小是不一样的。

像素组成的图像叫位图。

分辨率=画面水平方向的像素值 * 画面垂直方向的像素值。分辨率可以分为两方面:屏幕分辨率和图像分辨率。

sp:字体大小,会根据用户的字体大小偏好来缩放

dp=dip:device independent pixels    虚拟像素,在不同的像素密度的设备上会自动适配

像素密度:每英寸像素(英语:Pixels Per Inch,缩写:PPI),ppi有时缩写为DPI(dots per inch,每英寸点数)。通常DPI这个单位用于印刷领域,而PPI用于计算机领域。

在320x480分辨率,像素密度为160,1dp=1px 
在480x800分辨率,像素密度为240,1dp=1.5px             

1、1.5这些是density,density 表示对应的dp到px的系数,这个系数乘以dp长度就是像素数。

 float scale = getContext().getResources().getDisplayMetrics().density;

计算公式:px = dp * (dpi/160)


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

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

 /**
     * 根据手机的分辨率从 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);
    }
                             +0.5是为了四舍五入转换成int类型

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在移动应用开发中,设计尺寸是非常重要的。以下是一些常见的设计尺寸及其解释: 1. px(Pixel):像素。在计算机图形学中,像素是构成图像的基本单位,是一个矩形区域的最小单元。 2. pt(Point):点。在 iOS 设备上,1pt = 1/72 英寸。在 Android 设备上,1pt = 1/160 英寸。在设计师眼中,pt 是一个抽象的单位,不同的设备有不同的像素密度,但 pt 的大小在不同设备上是相同的。 3. ppi(Pixels Per Inch):每英寸像素数。ppi 越高,屏幕显示的图像越清晰。例如,iPhone 11 的 ppi 是 326,而 iPhone 11 Pro Max 的 ppi 是 458。 4. dpi(Dots Per Inch):每英寸点数。dpi 是印刷行业常用的单位,但在移动设备上也有用处,因为移动设备的屏幕本质上也是一种印刷技术。dpippi 的概念相似,但 dpi 通常用于打印机和扫描仪等设备。 5. dp(Density-independent Pixel):密度无关像素。dpAndroid 设备上的一个单位,它与 pt 的概念类似,但是 dp 进行了像素密度的换算。例如,当设备像素密度为 160dpi 时,1dp = 1px;当设备像素密度为 320dpi 时,1dp = 2px。 6. sp(Scaled Pixels):可缩放像素。spAndroid 设备上用于字体大小的一个单位,它与 dp 的概念类似,但是 sp 进行了字体的缩放。例如,当设备像素密度为 160dpi 时,1sp = 1dp;当设备像素密度为 320dpi 时,1sp = 2dp。 在设计移动应用时,需要考虑不同设备的像素密度和屏幕尺寸。使用像素密度无关的单位(如 dpsp)能够确保设计在不同设备上的显示效果相同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值