JessYanCoding / AndroidAutoSize

🔥 A low-cost Android screen adaptation solution (今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案).
Apache License 2.0
13.47k stars 1.96k forks source link

难道没有人发现mm和pt的预览窗口搞反了吗 #421

Open yangkangs opened 2 years ago

yangkangs commented 2 years ago

Environment

Bug Description:

Log:

Screenshot

QQ截图20220819144331 QQ截图20220819144412

Related Code:

Others:

JessYanCoding commented 2 years ago
public static float applyDimension(int unit, float value,
                                       DisplayMetrics metrics)
    {
        switch (unit) {
        case COMPLEX_UNIT_PX:
            return value;
        case COMPLEX_UNIT_DIP:
            return value * metrics.density;
        case COMPLEX_UNIT_SP:
            return value * metrics.scaledDensity;
        case COMPLEX_UNIT_PT:
            return value * metrics.xdpi * (1.0f/72);
        case COMPLEX_UNIT_IN:
            return value * metrics.xdpi;
        case COMPLEX_UNIT_MM:
            return value * metrics.xdpi * (1.0f/25.4f);
        }
        return 0;
    }

根据上面的官方 API 里面的公式,得出的预览尺寸计算公式,你自己看看,里面对应的 PT 计算公式是不是除以 72, MM 计算公式是不是除以 25.4,我看倒是没什么问题