我需要计算任意dpi到任意dpi的公式。例如: mdpi到hdpi,xdpi到xxhdpi,等等。这个网站完全满足我的要求,但我无法找到它的逻辑。对于它的公式有什么建议吗?
发布于 2022-07-27 18:44:09
所有的逻辑都是客户端的,所以简单的检查将向您展示整个algoritm:
我提取了它,并简化了一点:
if (e == ldpi) {
mdpi.value = (Number(ldpi.value) / 3) + Number(ldpi.value);
hdpi.value = Number(ldpi.value) * 2;
xhdpi.value = Number(mdpi.value) * 2;
xxhdpi.value = Number(mdpi.value) * 3;
xxxhdpi.value = Number(mdpi.value) * 4;
}
else if (e == mdpi) {
ldpi.value = (Number(mdpi.value) / 2) + (Number(mdpi.value) / 4);
hdpi.value = Number(ldpi.value) * 2;
xhdpi.value = Number(mdpi.value) * 2;
xxhdpi.value = Number(mdpi.value) * 3;
xxxhdpi.value = Number(mdpi.value) * 4;
}
else if (e == hdpi) {
ldpi.value = Number(hdpi.value) / 2;
mdpi.value = (Number(ldpi.value) / 3) + Number(ldpi.value);
xhdpi.value = Number(mdpi.value) * 2;
xxhdpi.value = Number(mdpi.value) * 3;
xxxhdpi.value = Number(mdpi.value) * 4;
}
else if (e == xhdpi) {
ldpi.value = Number(e.value) - (Number(e.value) / 2 + Number(e.value) / 8);
mdpi.value = Number(e.value) / 2;
hdpi.value = Number(ldpi.value) * 2;
xxhdpi.value = Number(mdpi.value) * 3;
xxxhdpi.value = Number(mdpi.value) * 4;
}
else if (e == xxhdpi) {
ldpi.value = Number(e.value) / 4;
mdpi.value = (Number(ldpi.value) / 3) + Number(ldpi.value);
hdpi.value = Number(ldpi.value) * 2;
xhdpi.value = Number(mdpi.value * 2);
xxxhdpi.value = Number(mdpi.value) * 4;
}
else if (e == xxxhdpi) {
const val = e.value / 4;
ldpi.value = val - (val / 4);
mdpi.value = (Number(ldpi.value) / 3) + Number(ldpi.value);
hdpi.value = Number(ldpi.value) * 2;
xhdpi.value = Number(mdpi.value * 2);
xxhdpi.value = Number(mdpi.value) * 3;
}我认为上面的代码是非常不言自明的,但是值e代表了一些dpi值。然后,您应该检查该值是否为ldpi、mdpi或任何其他值,并以此为基础计算其他密度。
https://stackoverflow.com/questions/73142866
复制相似问题