getIntrinsicWidth()和getIntrinsicHeight()方法理解误区

Drawable类中有一对方法getIntrinsicWidth()和getIntrinsicHeight():顾名思议让我开始觉得它们得到的是drawable图片的原始固有宽高,如果这样理解的话那得到的宽高肯定是drawable本身固有的属性,同一个drawable不会随着硬件软件环境的影响都会保持不变才对。

但事实是:我理解错了,相信还有不少经验不够丰富的同学也是这么理解的。

正确的理解是:方法名只是名字而已,不能完全代表方法本意。这两个方法获得的宽高是设备依赖的。在stackoverflow上看到正确理解,有一个例子,两个ic_launcher图片分放在hdpi文件下和xhdpi文件下,如果设备是xhdpi,测试打印得到intrinsic值是96.然后把xhdpi文件下的图片删除,同样运行在xhdpi的设备上得到的依然是96,而不是现在环境唯一的图片:在hdpi文件下的intrinsic值本是72.

所以正确理解应该是:得到的非图片固有属性,而是与设备相关的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值