標籤:等價 pac 操作 body 公式 res 2.7 大小 sdk
在 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作業系統自動完成的,我們不需要關心
手機螢幕密度等級和螢幕邏輯尺寸