Android中px与dip,sp的转化

我们在页面布局的时候,经常会设置容器的长度,但是到底该使用哪个作为长度的单位而懊恼。在Android中支持的描述大小区域的类型有以下几种:

px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。转化需要屏幕的精度density density(DisplayMetrics类中属性density)

dip = (int) (px / density + 0.5f);


sp(scaled pixels—best for text size)——带比例的像素。

fontScale(DisplayMetrics类中属性scaledDensity)

sp = (int) (px / fontScale + 0.5f);


对于高清的屏幕一般 density = 2.0, scaledDensity = 2.0


一般都是在1或2之间

你可能感兴趣的:(Android中px与dip,sp的转化)