px 像素
就是一个点,一个像素点,最小的单位。大小不固定,颜色也不固定。它是一个相对单位,在不同的密度单位下能变大变小。同样是1英寸的屏幕,密度越大,像素越多,则单个像素的物理尺寸越小。
像素数量px = 像素密度ppi x 屏幕尺寸in
所以在屏幕尺寸一定的情况下,密度越大,像素数量越多,显示效果就会越清晰。看下图:
屏幕快照 2019-09-12 下午3.46.53.png
相机所说的像素,其实就是最大像素的意思,像素是分辨率的单位,这个像素值仅仅是相机所支持的有效最大分辨率。
30万 640*480
50万 800×600
80万 1024×768 5” (3.5×5英寸)
我们常说一张100kb大小的图片,指的是图片的体积。一张图像在存储时,会描述每个像素点的颜色信息、位置、数量,这些描述数据就是图片的体积,如果像素越多自然图像体积越大。
像素px常用来描述图像尺寸和显示器分辨率。
**ppi 像素密度 **
1英寸屏幕上显示的像素量,密度单位。决定图片的物理显示尺寸,只有涉及到显示才有意义。值越大,显示越细腻。
英寸是使用于联合王国(UK,即英国(英联邦)及其前殖民地的长度单位,一般为1英寸=2.54cm
计算公式: ppi=屏幕对角线上的像素量px/对角线长度inch = √(屏幕横向像素^2 + 屏幕纵向像素^2)/对角线长度。
屏幕快照 2019-09-12 下午4.03.56.png 屏幕快照 2019-09-12 下午4.04.21.png比如 iphone6的ppi是多少?ppi=√(750px²+1334px²)/4.7in=326ppi。
其实我们日常所说的分辨率有两个概念。一个指显示器的分辨率,另一个是图像的分辨率:
- 显示器分辨率指显示器所能显示的像素多少。屏幕尺寸一定时,分辨率越大,像素密度越大,显示器可显示像素越多,画面就越精细。
- 图像分辨率则是单位英寸中所包含的像素点数,比如photoshop里新建画布时设置的图像分辨率是300ppi,其定义更趋近于分辨率本身的定义。
pt
这里只说iOS开发时使用的pt,pt是iOS系统的开发单位,而且是长度固定的,不随屏幕像素密度ppi变化而变化。
苹果公司规定:普屏时1px=1px,而普屏的ppi=163像素/英寸,那么pt=1/163英寸=0.16mm(固定值)。普屏1px=1px,高清屏1pt=2px。
用固定长度pt作为开发单位的好处是,这样可以保证同一张图片在不同设备上显示大小一样,因为pt值是固定的。高清屏上1pt等于更多的像素px,因为像素在高清屏上变小,所以pt还是固定的。
dp
dp是安卓的开发单位,也是一个固定长度的单位。
根据不同的屏幕分辨率,和px有不同的倍数关系。规定: 1dp等于屏幕像素密度为160ppi时1px的长度。
公式:1dp = (屏幕ppi/160)px。
因为在安卓中有很多dp的兄弟姐妹啊,那么这时候又咋算呢?
屏幕快照 2019-09-12 下午4.36.25.png
现在我们知道,mdpi就是屏幕像素密度为160,那么就以它为标准吧,这些屏幕密度的比值是 ldpi : mdpi : hdpi : xhdpi : xxhdpi = 0.75 : 1 : 1.5 : 2 : 3。
安卓中清屏 1dp = 1px 高清屏 1dp = 1.5px 超清屏 1dp = 2px
一般做设计的时候以xhdpi为模板,xhdpi条件下 1dp = 2px,标注长度的时候,将长度像素除以2即为dp值,方便沟通。
sp
sp是安卓开发用的字体大小单位。
dp是长度单位,sp是字体单位,表示大小。
一般情况下都认为sp=dp。
为什么要把sp和dp代替px?
最简单的原因就是他们不会因为ppi的变化而变化,在相同物理尺寸和不同ppi下,他们呈现的高度大小相同。更接近物理呈现,但是px则不行。
rem
再来说说rem,其实它与我们设计人员关系并不大,主要是前端开发们使用的单位,但是也可以了解一下。
它有一点像%的用法。举个栗子,先说一个常识,浏览器的默认字体高都是16px。这时100%=16px,那么1px=6.25%,10px=62.5%,同理这里的1rem=10px,2rem=20px。px与rem的转换通过10就可以换算得来,rem是只相对于根元素htm的font-size,即只需要设置根元素的font-size,其它元素使用rem单位设置成相应的百分比即可。
一般情况下,是这样子使用的
屏幕分辨率
屏幕分辨率是指屏幕显示的分辨率。屏幕分辨率确定计算机屏幕上显示多少信息的设置,以水平和垂直像素来衡量。就相同大小的屏幕而言,当屏幕分辨率低时(例如 640 x 480),在屏幕上显示的像素少,单个像素尺寸比较大。屏幕分辨率高时(例如 1600 x 1200),在屏幕上显示的像素多,单个像素尺寸比较小。
显示分辨率就是屏幕上显示的像素个数,分辨率160×128的意思是水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。
网友评论