Android面试题1:尺寸单位解析
昨天,阿里的电话面试,让我发现好多不足,好多微小的知识点平时都没怎么关注,好吧,第一篇blog来分析下android中各种尺寸单位。
面试题1:
“Android中很多尺寸单位有哪些,具体有哪些区别”
1.尺寸种类
dip , px , pt ,sp ,dp
dip:(device indepedent pixels) 设备独立的像素(与密度无关,可以随着密度缩放),不同的设备显示不同,它与设备有关,具体与dpi 每英寸点的数量 有关,建议使用dip。
px:(pixels)像素,在不同的设备上显示一样大小,所以对于android设备具有各自不同的大小,分辨率的设备对于布局影响很大,建议不使用px。
pt:(points)磅,它是物理尺寸,1pt=1/72英寸,一般用户印刷业。
sp:(scaled pixels)可放大的像素,与刻度无关,Android中一般字体的大小建议使用sp,在android中 1pt大概等于2.22sp。
dp:与dip相似,如果屏幕密度为160dip(每英寸160个点)1px=1dp。
2.dip与px转换
我们知道dip与屏幕密度无关的像素点,px=dip x 屏幕真实密度/160 。
dip具有自适应屏幕密度,随着屏幕密度改变实际控件的像素大小。因为所以显示最终会转换为px显示。
例如,在density=160dip且屏幕的尺寸不变,1px=1dip.
如果一个density=160dip,另一个320dip且屏幕大小一样,如果按钮的宽度使用160px,那按钮的大小随着屏幕密度改变,按钮的大小看上去在高密度下是原来密度下的一半,无法完成自适应性。
如果一个density=160dip,另一个320dip且屏幕大小一样,如果按钮的宽度使用160dip,那按钮的大小不随着屏幕密度改变,跟原来实际真实尺寸一致,但高密度下,按钮显示更大细腻。
3.密度density
density(密度)值表示每英寸有多少个显示点,与分辨率是两个概念。与分辨率差别,由于相同的分辨率下,屏幕大小不同,造成密度不同。
物理屏幕上的像素总数。与尺寸类似,也有四种: 低、中、高、超高,android项目工程中对应drawable-四种dip
WVGA 800*480 hdip, VGA 640x480 HVGA 480x320 mdip ,QVAG 320x240 ldip,
注意res/drawable-_dip 目录下不同的分辨率对应不同的drawable,系统会根据系统屏幕不同的分辨率加载不同的drawable.
ldpi: 屏幕密度为120的手机设备
mdpi: 屏幕密度为160的手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px)
hdpi: 屏幕密度为240的手机设备
xhdpi: 屏幕密度为320的手机设备
xxhdpi:屏幕密度为480的手机设备
4.分辨率
分辨率指屏幕上拥有的像素的总数。注意,虽然大部分情况下分辨率都被表示为“宽度×长度”,但分辨率并不意味着屏幕长宽比。在Android系统中,程序一般并不直接处理分辨率。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。