Android-0. px、dp、sp(hdpi ldpi mdpi xhdpi xxhdpi)简介

1.px和ppi(dpi)

分辨率 :分辨率就是手机屏幕的横向像素×竖向像素, 常见的分辨率有480×800、720×1280、1080×1920等,像素单位是px

屏幕尺寸:屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米

屏幕像素密度:屏幕像素密度指每英寸屏幕所拥有的像素点数,英文简称ppi(pixels per inch,每英寸像素数), 另外还有个dpidots per inch ,每英寸多少点), 设计师切图的时候以dpi为准,而屏幕分辨率参数中给的是ppi, 所以一般我们可以简单的认为ppi等价于dpi

假如我们知道一部手机的分辨率是1080×1920,屏幕大小是5英寸,怎么算出此屏幕的密度呢?
根据勾股定理,对角线的像素数 =2203,2203除以5就是此屏幕的密度了,计算结果是440。
在这里插入图片描述

5英寸1080×1920的屏幕密度是440,而相同分辨率的4.5英寸屏幕密度是490。如此看来,屏幕密度将会出现很多数值,呈现严重的碎片化。而密度又是安卓屏幕将界面进行缩放显示的依据,那么安卓是如何适配这么多屏幕的呢?

其实,每部安卓手机屏幕都有一个初始的固定密度,这些数值是120、160、240、320、480。

安卓对界面元素进行缩放的比例依据正是初始的固定密度,比如前面计算的440就可能近似适配到初始的固定密度480。

参考官方说明: https://developer.android.com/guide/topics/resources/providing-resources

在这里插入图片描述
在这里插入图片描述

2. dp和px

dp也可写为dip,即density-independent pixel, 有点类似于windows的DIB, 也就是它具有设备无关性,比如一张宽和高均为100dp的图片在320×480480×800的手机上肉眼“看起来”一样大。而实际 上,它们的像素值px并不一样。

在这里插入图片描述
在安卓中,系统密度为160dpmdpi手机屏幕为基准屏幕,即320×480的手机屏幕。在这个屏幕中,1dp=1px

5个基本密度之间的缩放比为 3:4:6:8:12:16 , 相隔数值之间是2倍的关系, 如上图所示。

所以如果设计师制作效果图,在mdpi中给了张100px的图(1dp=1px,即100dp),那么mdpi对应4, xhdpi对应8,2倍的关系, 要实现同样的100dpxhdpi的图大小要到200px

反着计算更重要,比如你用PhotoShop在720×1280(xhdpi)的画布中制作了界面效果图,两个元素的间距是20px,那要标注多少dp呢?2倍的关系,那就是 10dp

当安卓系统字号设为普通时,sppx的尺寸换算和dppx是一样的。比如某个文字大小在720×1280的PhotoShop画布中是24px,那么这个文字大小是12sp

参考: https://blog.csdn.net/lantiankongmo/article/details/50549128

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值