drawable包对应手机分辨率,像素密度,dp,dip,sp,px,pt简单分析

像素密度

即每英寸屏幕所拥有的像素数,像素密度越大,显示画面细节就越丰富。 值得指出的是平时手机屏幕的大小指的是对角线之间的距离;
1英寸==2.54cm。像素密度=√{(长度像素数^2+宽度像素数^2)}/ 屏幕尺寸。(勾股定理得出对角线像素个数,再除以屏幕尺寸就是像素密度。)
注:假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,通过相似计算方法则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160(横向)或320/2=160(纵向),160dpi就是这部手机的像素密度。按上面公式,即57600+102400=160000,开根400dip,400就是对角线的像素,2.25+4=6.25,开根为2.5。400/2.5=160d。

dp:device independent pixels(设备独立像素)

如果设置表示长度、高度等属性时可以使用dp或sp。但如果设置字体,需要使用sp。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换.
dp与px转换公式:1dp*像素密度/160=()px.
下图组件假设宽为100dp,屏幕像素密度分别为160,320,480.尺寸相同,宽像素分别为:图一:200px,图二:400px,图三:600px。效果如下图:

dip:Density-independent Pixels(密度独立像素)

与dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字了。

sp: scaled pixels(比例像素)

主要用于字体显示,sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。

px:pixels(像素)

1px代表屏幕上一个物理的像素点;
px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同.假设尺寸相同,宽的像素分别为图一:300px,图二:400px,图三:500px.效果如下图:

pt: point

是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

Android drawable包对应开发的dpi是Dots Per Inch(每英寸所打印的点数,即像素密度)

drawable-ldpi 对应DPI为120
drawable-mdpi 对应DPI为160
drawable-hdpi 对应DPI为240
drawable-xhdpi 对应DPI为320

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值