android UI适配

本次项目中用了autosize头条适配方案。这次顺带把UI适配原理总结一下。

1.首先要明白一个公式:

公式:dp值×(当前dpi/160dpi)=>得出当前的像素数目

px :平常所说的1920×1080只是像素数量,也就是1920px×1080px,代表手机高度上有1920个像素点,宽度上有1080个像素点。

dpi:要想判别手机屏幕的显示好坏,还要考虑屏幕的宽高(英寸),也就是用dpi即每英寸多少像素来评价屏幕的显示效果。(不然假如手机分辨率是1920×1080,但是屏幕是几十寸的,那显示效果将不会很好,甚至你有可能看到小的像素块,那将更影响视觉效果。)

dp:其实dp就是为了使得开发者设置的长度能够根据不同屏幕(分辨率/尺寸也就是dpi)获得不同的像素(px)数量。比如:我将一个控件设置长度为1dp,那么在160dpi上该控件长度为1px,在240dpi的屏幕上该控件的长度为1*240/160=1.5个像素点。

也就是dp会随着不同屏幕而改变控件长度的像素数量。

2.auto size原理

其实今日头条的适配看到最后其实就是缩放比例。

也就是算出屏幕和设计稿的比例,根据设计稿控件的大小按缩放比例算出应该在屏幕上的大小

再来一个公式:density = dpi/160;

结合上面一个公式,再结合此公式,推出:

px = density * dp;

首先算出density = 屏幕宽/设计稿宽(其实这里autosize偷换了这个概念,density不是比例,是一个倍率)

然后  dp*density = px 就是控件在屏幕上应有的大小

3.ContentProvider

很有意思的是看源码时发现库的初始化是从ContentProvider开始的,也就是说ContentProvider的oncreate方法先于Application的onCreate方法执行的

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值