Android中的dp px dip相关概念

Android手机机型众多,分辨率和屏幕大小都很多,导致了Android生态环境的碎片化现象越来越严重。Google公司为了解决分辨率过多的问题,在Android的开发文档中定义了px、dp、sp,方便开发者适配不同分辨率的Android设备。

屏幕参数:

屏幕大小:指屏幕对角线的长度,通常使用“寸”来度量,例如5.0寸手机、6.0寸手机等。

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

PPI:每英寸像素(Pixels PerInch)又被称为DPI(Dots Per Inch)。它是由对角线的像素点数除以屏幕的大小得到的,通常达到400PPI就是非常高的屏幕密度了。

系统屏幕密度:

每个厂商的Android手机具有不同的大小尺寸和像素密度的屏幕。Android系统如果要精确到每种DPI的屏幕,那是不可能的。因此系统定义了几个标准的DPI值,作为手机固定的DPI,如下图所示。

密度

ldpi

mdpi

hdpi

xhdpi

xxhdpi

xxxhdpi

密度值

120

160

240

320

480

640

分辨率

240*320

320*480

480*800

720*1280

1080*1920

3840*2160

px : 其实就是像素单位,比如我们通常说的手机分辨列表800*400都是px的单位

dp : 虚拟像素,在不同的像素密度的设备上会自动适配

dip: 同dp

dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如:

在320x480分辨率,像素密度为160,1dp=1px

在480x800分辨率,像素密度为240,1dp=1.5px

计算公式:1dp*像素密度/160 = 实际像素数

ppi的运算方式是:

PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数

dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,

dp和px的换算公式 :

dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。

sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。

sp 与 px 的换算公式:sp*ppi/160 = px

总结得出:

px = dp*ppi/160

dp = px / (ppi / 160)

px = sp*ppi/160

sp = px / (ppi / 160)

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值