深入理解dp,px,以及density之文件夹系列


这篇博客是上一篇的后续。这里我主要和大家阐述一下我对android文件夹分类的理解吧。当然主要还是围绕分辨率来说吧~


drawable和layout文件夹很多,我例举了一部分,如下图:


这里我来解释一下,对于land和port,顾名思义,就是说横屏和竖屏的时候调用的drawable或者layout。

这里主要说明一下后缀是dpi的文件夹。


相信阅读过上一篇文章的人,都已经学会了如何计算自己手机的dpi,这些文件夹就是对应了这些dpi去使用。

具体步骤如下:

找到与自己手机相符的dpi,然后取里边的drawable去使用,

若没有找到,则找更高dpi的drawable,并且调用公式去计算然后使用。

如果还没有找到,则找低密度的dpi的drawable,并且调用公式去计算然后使用。

谷歌规定 : 

ldpi 是 120,

mdpi是160,

hdpi是240,

xhdpi是320。

首先你必须明白一点,无论系统从哪个文件夹去取drawable,都会进行计算(nodpi文件夹除外).

设图标原尺寸为 x,y.图标取出文件夹时的尺寸为,Tx,Ty.

具体公式是:

Tx = x * (density / density(文件夹对应的dpi))

Yy = y * (density / density(文件夹对应的dpi))


这么写可能有些人不太能够理解,举个栗子,大家应该就明白了~

还是我的手机,小米M1,屏幕密度240dpi~

现在有一张图,存放在ldpi,mdpi,hdpi,xhdpi中,图片是100px * 100px的~


若从ldpi文件夹中取出图片(文件夹的dpi为120),则取出后的图片分辨率为:

Tx = 100px * (240 / 120) = 200 px

Ty = 100px * (240 / 120) = 200 px


若从hdpi中取出图片,则取出后的图片分辨率为:

Tx = 100px * (240 / 240) = 100 px

Ty = 100px * (240 / 240) = 100 px


若从xhdpi中取出图片,则取出后的图片分辨率为:

Tx = 100px * (240 / ?) = ? px (自己动手试试吧!)

Ty = 100px * (240 / ?) = ? px


特殊文件夹,nodpi,就是不考虑文件夹的dpi,即,取图片时不会进行运算.


这里我要强调的一点是,当系统从文件夹取出图的时候,图片就已经经过运算了!


写的不太好,多谢阅读.


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值