Android屏幕适配

Android屏幕适配

    • 参考文章
    • 总结

参考文章

设置屏幕密度:
https://mp.weixin.qq.com/s/d9QCoBP6kV9VSWvVldVVwA
https://juejin.im/post/5b6250bee51d451918537021
https://juejin.im/post/5b7d414ee51d4538ad29ebf7

在设置屏幕密度的基础上,重写getResources() 方法;避免设置屏幕密度失效
https://juejin.im/post/5c18039d5188253b7e74987e

总结

android中的dp在渲染前会将dp转为px,计算公式:

px = density * dp;
density = dpi / 160;
px = dp * (dpi / 160);

以上文章中都会提到假设设计稿是基于 360dp 的;然后就将当前的屏幕密度设置为
适配后的 density = 设备真实宽(单位px) / 360

在阅读上边几个文章的时候,针对这一点有一些困惑。
其中 适配后的 density 应该指的是相对360dp density的倍数(所谓适配也就是让各个屏幕上的控件最终效果相对 360dp,做同样程度的缩放)

假设当前屏幕真实宽度为 A(px),实际屏幕密度为 B(px/dp),计算出的dp为 C(dp);则:
C = A / B
假设 C是360dp的n倍;C = n360;
n
360 = A / B
nB = A / 360 (即最后的屏幕密度为 nB,其实也就是想求出相对设计原图的360dp,需要将当前的屏幕密度设置为多少)

你可能感兴趣的:(android进阶)