我所知道px、dpi、dp、dip、sp、in、pt之间的差别

px:

即像素,1px代表屏幕上一个物理的像素点;

px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同

dpi:

是dot per inch的缩写,就是每英寸的像素数,也叫做屏幕密度。这个值越大,屏幕就越清晰。
假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。

小结:手机像素密度(dpi)=(横向/纵向)分辨率 / (横向/纵向)屏幕物理尺寸

dp:

这个是最常用但也最难理解的尺寸单位。它与“像素密度”密切相关。

不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480x320分辨率的也有800x480分辨率的,前者的像素密度就比较低。Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果。

小结:dp=像素数(px) / 手机像素密度(dpi)对应的系数

dip:

与dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字了。

sp:

与缩放无关的抽象像素(Scale-independent Pixel)。sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。如下所示:
这里写图片描述

系统字体为:—正常时————超大时——————–超小时:

这里写图片描述 这里写图片描述 这里写图片描述

小结:sp与dp在系统字体正常时,大小一致,但会根据系统字体大小的变化而变化

in:

即英寸,1英寸≈2.54厘米;

pt:

1pt=1/72英寸≈0.035厘米;

dp与px的转化:

这里写图片描述

这里写图片描述

那么为什么需要+0.5f呢?

官方文档中,有这样一句话: Then add 0.5f to round the figure up to the nearest whole number, when converting to an integer.
加上0.5f是为了在转化为int类型的时候,将计算结果赋值为它最接近的正数。

参考连接:[Android问答] px、dp和sp,这些单位有什么区别?

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在移动应用开发中,设计尺寸是非常重要的。以下是一些常见的设计尺寸及其解释: 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 是印刷行业常用的单位,但在移动设备上也有用处,因为移动设备的屏幕本质上也是一种印刷技术。dpi 与 ppi 的概念相似,但 dpi 通常用于打印机和扫描仪等设备。 5. dp(Density-independent Pixel):密度无关像素。dp 是 Android 设备上的一个单位,它与 pt 的概念类似,但是 dp 进行了像素密度的换算。例如,当设备像素密度为 160dpi 时,1dp = 1px;当设备像素密度为 320dpi 时,1dp = 2px。 6. sp(Scaled Pixels):可缩放像素。sp 是 Android 设备上用于字体大小的一个单位,它与 dp 的概念类似,但是 sp 进行了字体的缩放。例如,当设备像素密度为 160dpi 时,1sp = 1dp;当设备像素密度为 320dpi 时,1sp = 2dp。 在设计移动应用时,需要考虑不同设备的像素密度和屏幕尺寸。使用像素密度无关的单位(如 dpsp)能够确保设计在不同设备上的显示效果相同。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值