淘先锋技术网

首页 1 2 3 4 5 6 7

Android尺寸单位详解

时间:2017-02-08     来源:移动互联网学院

一、屏幕参数

(1)屏幕大小:指屏幕对角线的长度,通常用“寸”来度量。每英寸像素是160。

例如320*480的屏幕,水平方向是320/160=2英寸,垂直方向是480/160=3英寸,对角线=sqrt(2*2 + 3*3)=3.6。也就是说该屏幕的大小是3.6英寸。

(2)分辨率:指手机屏幕的像素点个数。例如720*1280就是指屏幕的分辨率,指宽有720个像素点,高有1280个像素点。

(3)密度PPI:每英寸像素(Pixel Per Inch),又称DPI(Dots Per Inch)。它是由对角线的像素点除以屏幕的大小得到的。假如我们知道一部手机的分辨率是1080×1920,通过宽1080和高1920,根据勾股定理,我们得出对角线的像素数大约是2203,那么用2203除以5就是此屏幕的密度了,计算结果是440,也就是每寸有440个像素。如下图所示:

0cb0fcdb16e75201af18e25d89b2bd41.png

二、几种常见单位的介绍

px:表示屏幕实际的像素。例如,320*480的屏幕在横向有320个像素,在纵向有480个像素。

in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54厘米。例如,形容手机屏幕大小,经常说,3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是3.2英寸,表示手机的屏幕(可视区域)对角线长度是3.2*2.54 = 8.128厘米。

pt:表示一个点,是屏幕的物理尺寸。大小为1英寸的1/72。

mm:表示毫米,是屏幕的物理尺寸。

dp(Density-independent Pixels,也即dip)是一种密度无关的像素单位,它是基于屏幕物理密度的抽象单元。一般认为在密度160dpi(dots per inch,每英寸点数)的设备上,1dp大致等于1px。dp与px并不总是一比一的关系,当密度变大或变小时,dp与px之间便存在一个比例因子。因此在设置width和height时,建议使用dp,它会根据屏幕大小自适应,如果使用px则会导致在不同尺寸屏幕上得到的效果不同。

sp(与密度和字体缩放度无关的像素):与dp类似,它可以针对不同屏幕大小作自适应,因此在设置字体大小时,通常使用sp,它也会根据屏幕的大小而变化。

三、dp与px转换

下表是各个密度所对应的屏幕密度值与分辨率:

190b6eb89d6046ba4b87c758dd1df449.png

在160dpi屏幕上,1dp = 1px = 1/160英寸。随着屏幕密度的变化,对应的像素数量也在变化。px与dp的换算公式:

px = dp * (density/160),density表示屏幕密度,表示每英寸有多少个显示点。

对应关系:

ldpi——120ppi——1dp——0.75px(表示如果将1个dp换算成px的话,则是0.75px)

mdpi——160ppi——1dp——1px(表示如果将1个dp换算成px的话,则是1px)

hdpi——240ppi——1dp——1.5px(表示如果将1个dp换算成px的话,则是1.5px)

xhdpi——320ppi——1dp——2px(表示如果将1个dp换算成px的话,则是2px)

xxhdpi——480ppi——1dp——3px(表示如果将1个dp换算成px的话,则是3px)