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,需要将当前的屏幕密度设置为多少)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值