Android的尺寸单位

px

px就是pixels(像素)的意思,可以设置一个View的宽和高的px值。但是用px作为单位通常是一种错误的做法,因为手机有很多种可能的分辨率。宽高相同px的view在720P的手机和1080P的手机大小是不一样的。例如下图是一个宽高都为360px的TextView,在Galaxy Nexus(1280×720)、Nexus 5(1920×1080)和Nexus6(2560×1440)的显示效果。


Android的尺寸单位_第1张图片

我们只看宽度,360px占720p屏幕的1/2,占1080p屏幕的1/3,占1440p屏幕的1/4。这样不同手机的显示效果就不统一了。因为通常不用px作为尺寸单位,而是用dp。

dp

dp是device independent pixels(设备独立像素)的缩写,其实应该写成dip,但是写成dp也行所以大家都写成dp了。dp的特点是兼容不同分辨率的设备,其原理是1dp等于像素密度为160ppi的屏幕1px的长度。那么在240ppi的屏幕1dp就等于1.5px,在320ppi就是2px。也就是说dp会根据各种ppi按比例换算成对应的px。因此相同的dp值在不同分辨率的显示效果是统一的。例如下图是宽高都为100dp的TextView在Galaxy Nexus、Nexus5和Nexus6的显示效果。


Android的尺寸单位_第2张图片

sp

sp是字体大小单位,意思是scaled pixels(放大像素)。sp和dp一样其像素值也是设备独立的。但是Android手机在设置里可以更改字体大小为小、普通、大、超大。默认的普通模式下1sp = 1dp,其它字体模式1sp会按比例换算成不同的dp。另外字体的默认大小是14sp。


Android的尺寸单位_第3张图片

结论

view尺寸单位用dp,字体大小单位用sp。

你可能感兴趣的:(Android的尺寸单位)