06月25, 2015

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。

其实从方法名中也可以看出来区别了,想想我真是撒啊。。。

本文链接:http://www.siki.space/post/difference_between_getdimension_and_getdimensionpixelsize.html

-- EOF --

Comments