在Android Studio中表示长度的单位有px、sp、dp等。
1 px
px是pixel即像素的简称。1px表示屏幕上的一个物理像素点。对于不同分辨率设备,像素的大小是不同的。图1是将字体的大小设置为40px时,在分辨率为480×800的设备上运行的效果,图2是在分辨率为1080×1920的设备上运行的效果。
图1 480×800的设备
图2 1080×1920的设备
从图1和图2可以看出,虽然字体的大小均为40px,但是在不同分辨率的设备上,大小是不同的,其原因就是不同分辨率的设备上,像素的大小是不同的。
2 dp
dp是Device Independent pixels即设备不依赖像素的简称,在不同分辨率的设备上,dp会自动适配,显示相同的效果。图3是将字体的大小设置为40dp时,在分辨率为480×800的设备上运行的效果,图4是在分辨率为1080×1920的设备上运行的效果。
图3 480×800的设备
图4 1080×1920的设备
从图3和图4中可以看出,不同分辨率中显示的大小为40dp文字的效果相同。
3 sp
sp是Scale Independent Pixel即与放缩无关像素的简称,sp与dp类似,在不同分辨率的设备上,sp会自动适配,显示相同的效果。sp与dp不同之处在于,当系统的字体设置发生变化时,以dp为单位的字体不会发生变化,而以sp为单位的字体会随着变化。图5中,第一个字体大小是40dp,第二个字体大小是40sp。当系统字体设置为“默认”时,两个字体一样大;当系统字体设置为“最大”时,40sp的字体大于40dp,如图6所示。
图5 当系统字体为“默认”时
图6 当系统字体为“最大”时