一直以来对手机屏幕这块云里雾里的,以前以为用dp就可以了可以满足大部分条件,但是越开发越发现,每个知识点都是非常重要的,而且不是说你看懂了就好了,而要想为什么这样,所以我决定将以前的知识稀松的知识one more time ,亡羊补牢,希望为时不晚,就从屏幕适配开始吧!
参考文章:Android 屏幕适配:最全面的解决方案 谢谢作者给我以学习上的帮助,我写的此篇文字基本上是此篇文章的背诵版,和分解版
基础知识点
手机尺寸:
手机屏幕的对角线的物理长度,size=宽^2*高^2开根号
单位:英寸,一英寸=2.54cm
手机分辨率:一般表示为手机屏幕宽度所占像素x高度所在像素
单位:px(pixel)
例如:1080x1920,意思就是在手机宽度上有1080个像素点,高度上有1920个像素点。
屏幕像素密度:一英寸所占的像素
单位:dpi(dors per ict)
计算公式:屏幕像素密度=宽^2*高^2开根号/手机尺寸
安卓手机对每类手机尺寸都有一个相应密度,例如:
密度类型 屏幕分辨率 屏幕像素密度
低密度 (ldpi) 240x320 120(dpi)
中密度 (hdpi) 320x480 160(dpi)
高密度 (mdpi ) 480x800 240(dpi)
超高密度 (xdpi) 720x1280 320(dpi)
超高高密度(xxdpi) 1080x1920 480(dpi)
密度无关像素:与物理尺寸无关的像素密度
单位:dip或dp(density independent pixel)
大致解释:比如如果用px为单位在尺寸为320x480的屏幕分辨率上表示一半大小宽度的尺寸为160px,而在480x800的尺寸表示一半大小宽度的尺寸为240px,如果用dp作为单位在两个尺寸上表示一半大小宽度的尺寸都为160dp
结论:1dp在不同分辨率所代表的像素是不同的,1dp=1px*density
重点:规定将尺寸为320x480屏幕分辨率,屏幕像素密度为160(dpi)作为标准像素密度,1dp=1px
根据:公式1dp=1px*density可以求得各个分辨率下的1dp所表示的像素
密度类型 | 屏幕分辨率 | 屏幕像素密度 | 比例 | 密度无关像素 |
低密度(ldpi) | 240x320 | 120 | 3 | 1dp=0.75px |
中密度(hdpi) | 320x480 | 160 | 4 | 1dp=1px |
高密度(mdpi) | 480x800 | 240 | 6 | 1dp=1.5px |
超高密度(xdpi) | 720x1280 | 320 | 8 | 1dp=2px |
超高高密度(xxdpi) | 1080x1920 | 480 | 12 | 1dp=3px |
独立比例像素:用于自适应不同分辨率下的字体大小
单位:sp(scale independent pixel)
一般用偶数来表示12sp,14sp,16sp,18sp等等尽量少用奇数表示因为转换后会丢失精度(具体怎么转换我还不太清楚)
基础知识到这里就结束了,此知识点将会继续更新,下一篇重点笔记为如何适配。