Android当中的一些尺寸单位

Android当中的一些尺寸单位

手机尺寸

屏幕对角线的长度,单位为英寸(2.54cm)。

手机的分辨率

屏幕能够显示的像素数量,一般用在长方向上的数量*宽方向上的数量来表达。

手机的像素密度

pixels per inch,即ppi,也就是每英寸屏幕显示的像素数,像素密度越大,显示的画面细节就越丰富。

像素密度= {1+[(长度像素数-1)2+(宽度像素数-1)2]^(1/2)}/屏幕尺寸。(也就是对角线上每英寸显示的像素数了)

DPI

Dots Per Inch,每英寸所打印的点数或线数的缩写,用来表示打印机打印分辨率,但有时也会用dpi来代指ppi

dpi(dot per inch)屏幕像素密度,指的是每英寸多少像素 px(pixels)。

手机的密度

Density,以160ppi为基准,即像素密度为160时Density为1

ldpi 120dpi 0.75
mdpi 160dpi 1.0
hdpi 240dpi 1.5
xhdpi 320dpi 2.0
xxhdpi 480dpi 3.0
xxxhdpi 640dpi 4.0

px

pixels,像素,1px的长度就对应了屏幕一个像素点的大小。不同的手机显示的大小可能是不一样的。

dp/dip

dp 与 dip(device independent pixels)是一个意思,指的是设备独立像素,或者说设备无关像素,和设备屏幕有关系。

1dp = (dpi/160)px

1dp = density px

1px = 1/density dp

也就是用dp做单位,最终转换的像素数是有变化的,例如1dp,如果是160dpi,就是1px;120dpi,就是0.75px;320dpi,就是2px。

最终的作用区别也就是,在尺寸不变的情况下:以dp为单位,在不同质量屏幕的手机上显示的大小是不变的;而以px为单位的话,在差一点的手机上,也就是像素密度更小的情况下,显示的效果会变大,在好一点的手机上则会变小。所以我们在布局文件中,除了字体大小以sp为单位,其它都以dp为单位就好

sp

scaled pixels(可缩放像素),主要用于字体大小的 ,与dp类似,但使用sp作为字体大小单位,字体大小会随着系统的字体大小改变,而dp作为单位的话就不会。
官方文档:https://developer.android.com/training/multiscreen/screendensities?hl=zh-cn

Android在运行的时候会自动将dp/dip/sp为单位的尺寸转换为以像素单位的值

posted @ 2020-04-18 10:19  甜树果子二号  阅读(613)  评论(0编辑  收藏  举报