获取dimens里的长度

RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) getLayoutParams();

获取dimens数据的两种方式


 如: int marginLand =

mContext.getResources().getDimensionPixelSize(R.dimen.help_margin_land);
(int) mContext.getResources().getDimension(R.dimen.filter_item_portrait_margin);

getDimension和getDimensionPixelSize的区别

我在手动绘制View的时候,需要绘制一个0.68dp粗的线,由于并不是整数个dp,所以我一开始用getResources().getDimension()来获取,得到的粗细就是1.36px

然后设置Paint.setStrokeWidth(1.36),这样画出来的线实际上是2px粗的(1280*720屏幕)。

但是自动绘制的时候,0.68dp的线实际是占1px宽度的。

后来经过研究,使用getDimensionPixelSize来获取,则得到的粗细是1px,画出来的线也是1px。

由此可以看出getDimension获取的结果是按照dp和px的比例得到的浮点数据,

而getDimensionPixelSize获取的结果是按照dp和px的比例得到的整数数据,而由于setStrokeWidth的参数是浮点类型的,多种原因导致getDimension画出的线不是1px
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值