res中values-swXXXdp,px,dp,dpi适配值的计算

在系统开发过程中,总是会碰到测试提关于显示大小的bug。如设置显示大小为最大或最小,在某些软件layout上适配没有做好的话,就会出现显示异常,又要去进行相关适配。所以就有了类似value-sw320dp、sw400dp这样的文件,专门进行对dimens的定制。

1.values-swxxdp用来做适配的文件夹,一般是定义dimens,或者layout。 swXXdp表示最小宽度,所以需要先计算出手机的最小宽度值。
最小宽度计算方法:sw=160*手机宽度像素/dpi

dpi的获取方式:

getApplicationContext().getResources().getDisplayMetrics().densityDpi;

更改显示大小后,这个dpi也会改变,所以要针对计算。比如手机的分辨率为1920x1080,那么根据公式计算出的dpi为480,再去计算最小宽度:sw=160*1080/480=360dp。所以对应的文件类型是values-sw360dp。

2.px和dp之间的换算

px指屏幕像素计算方式:

px = 1dp * density(由DPI决定)

density计算方式:

density = dpi / 160 

如手机的分辨率为1920x1080,dpi为480,density 为3,所以px:dp = 3 : 1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值