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就是这么任性?)