3 Android/IOS 屏幕適配: dp/sp 與 pt

 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就是這麼任性?)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章