1、dip device independent pixels(设备独立像素). 不同设备不同的显示效果,这个和设备硬件有关, 一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
dip的换算: dip(value)=(int) (px(value)/1.5 + 0.5)
2、dp 等同于dip一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
3、px pixels(像素) 屏幕上的点,不同设备不同的显示屏显示效果相同,这是绝对像素,是多少就永远是多少不会改变。
4、sp scaled pixels — best for text size (放大像素)(与刻度无关的像素):主要处理字体的大小。 与dp类似,但是可以根据用户的字体大小首选项进行缩放
根据google的推荐,像素统一使用dip,字体统一使用sp 附:网络推荐 1、px就是像素,如果用px,就会用实际像素画,比个如吧,用画一条长度为240px的横线,在480宽的模拟器上看就是一半的屏宽,而在320宽的模拟器上看就是2/3的屏宽了。 而dip,就是把屏幕的高分成480分,宽分成320分。比如你做一条160dip的横线,无论你在320还480的模拟器上,都是一半屏的长度。 public static int dip2px(Context context, float dipValue){ final float scale = context.getResources().getDisplayMetrics().density; return (int)(dipValue * scale + 0.5f); } public static int px2dip(Context context, float pxValue){ final float scale = context.getResources().getDisplayMetrics().density; return (int)(pxValue / scale + 0.5f); }