1 Android 尺寸適配: 【dp sp ->px 到 pt->px 】
常用的dp sp 來定義尺寸。
dp: 虛擬像素,在不同機器上自動適配
公式:dp * densityDpi /160 = px
我們的 densityDpi 像素密度,比如160 320等
我們用dp 描述寬高,用sp 描述字體(因爲Android手機改變字體後,sp纔會變化)
dp sp 類似,均和densityDpi 像素密度相關
所以,大部分時候我們用dp sp 來處理Android的佈局
但是dp 和px 均是抽象概念,同樣5.5英寸的手機,對於高密度屏幕手機和低密度屏幕手機
在同樣10dp寬度,px有差異,視覺上也有差異。
所以這時,我們需要增加配置 xhdpi / xxhdpi 等分辨率的尺寸dimen
暴力的pt尺寸
https://github.com/Firedamp/Rudeness
pt: point 即物理點,每一英寸72個點
【pt = px * xdpi / 72】
Rudeness 方案就是假設有一個720pt 寬的屏幕,等於是10英寸寬(創建屏幕預覽)
【關鍵是改變 DisplayMetrics 中的 xdpi 】 xdpi 表示每英寸的像素點
也就是上面公式中這個因子xdpi 改變xdpi = width(屏寬像素值)/720 * 72;
我們代入上面的公式 pt = px * width(屏寬像素值) / 720;
也就是每設置 720 pt 中的 1 pt, 等於設置了 屏寬 的1px ,恰好匹配上設計圖中的 px
例如 720*1280 設置因子之前,1pt ~~ 4px 設置以後 1pt = 1px
oppo A57 橫向 720px = 橫向2.5英寸 = 180pt = 72*2.5
2 IOS
開發尺寸是 pt
iphone6 375pt * 667pt 屏幕分辨率 750x1334 px
ppi 326 的使用 @2x 下的圖片
ppi 401 的使用 @3x 下的圖片
Iphone 我目前是一個pt 解決所有 默認iphone6的 375 然後是適配7plus 414 和SE 320
以375 爲標準,等比縮放,KSize(x) ((x)*kScreenWidth/ 375.0f)
iphone6 橫向750px =橫向 2.3 英寸 = 375pt = 163*2.3
Android pt 和 IOS pt 似乎兩個概念?
Android 1pt = 1/72 英寸 (一般標準)
IOS 1pt = 1/163英寸 (IOS就是這麼任性?)