在 Android 开发中常常会使用到手机屏幕密度和屏幕逻辑尺寸来进行屏幕适配,这里就列出常见手机的屏幕参数列表:
像素密度等级 | 像素密度 | 逻辑像素密度 | 屏幕像素 | 屏幕尺寸(inch) | 宽逻辑尺寸(dp) | 真实像素密度 | 设备型号 |
ldpi-0.75 |
120 |
120 |
240*320 |
2.7 |
w320dp |
140.55 |
|
mdpi-1 |
160 |
160 |
320*480 |
3.2 |
w320dp |
180.27 |
|
hdpi-1.5 |
240 |
240 |
480*800 |
3.4 |
w320dp |
274.39 |
|
xhdpi-2 |
320 |
320 |
720*1280 |
4.65 |
w360dp |
315.6 |
|
xhdpi-2 |
320 |
320 |
768*1280 |
4.65 |
w384dp |
321 |
Nexus4 |
xxhdpi-3 |
480 |
480 |
1080*1920 |
4.95 |
w360dp |
445 |
Nexus5 |
xxhdpi-3 |
480 |
420 |
1080*1920 |
5.2 |
w411dp |
423 |
Nexus5X |
xxxdpi-4 |
640 |
560 |
1440*2560 |
5.96 |
w411dp |
493 |
Nexus6/6P |
- 像素密度等级:是 rom 厂商设定的值,一般是取实际屏幕密度最接近的屏幕密度等级,但是也可以自主设定,目前 android sdk 中支持的等级有 ldpi、mdpi、tvdpi、hdpi、xhdpi、xxhdpi、xxxhdpi
- 等级像素密度:像素密度等级对应的像素密度
- 逻辑像素密度:是 rom 厂商设定的值,一般是取实际屏幕密度最接近的屏幕密度等级对应的值,但是也可以自主设定,通过系统 api,getResources().getDisplayMetrics().densityDpi 可以获取到该值
- 像素:就是屏幕的实际像素单元个数
- 尺寸:就是屏幕的实际尺寸大小
- 逻辑尺寸:实际像素数*160/逻辑像素密度,这也是 px 转 dp 的公式
- 真实像素密度:利用勾股定理算对角线上像素数/对角线尺寸
- dp,dp 翻译过来叫做设备无关像素,对于真实像素密度等于像素密度等级上的逻辑值的设备,1dp = 1/160 inch,对于不等于逻辑值的设备,比如上述表格第二个设备,180.27 != 160 这个差值 android 操作系统会进行等比缩放来弥补。比如在这个设备上用的 160dp 到最后真正在屏幕上用多少个像素表示呢,这其实经过了 2 个步骤:
- dp 转程序中的 px,按照 dp 转 px 的公式,在该设备上 160dp=160px,160dp 和我们程序里面用 160px 完全等价
- 程序中的 px 转显示屏上的 px,程序中160px 在该设备显示屏上用的是 180 px。160px -> 180px 这个过程是android操作系统自动完成的,我们不需要关心
手机屏幕密度等级和屏幕逻辑尺寸
原文:http://www.cnblogs.com/chiangyibo/p/6814653.html