android dp和sp的区别

2025-04-09 13:50:11
推荐回答(1个)
回答1:

1. dip: device independent pixels( 设备独立像素 ). 不同设备有不同的显示效果 , 这个和设备 硬件有关, 一般我们为了支持 WVGA 、 HVGA 和 QVGA 推荐使用这 这个, 不依赖像素。 这里要特别注意 dip 与屏幕密度有关,而屏幕密度又与具体的硬件有关,硬件设置不正 确,有可能导致 dip 不能正常显示。在屏幕密度为 160 的显示屏上, 1dip=1px ,有时候可能 你的屏幕分辨率很大如 480*800 ,但是屏幕密度没有正确设置比如说还是 160 ,那么这个时 候凡是使用 dip 的都会显示异常,基本都是显示过小。 dip 的换算: dip ( value ) =(int) (px ( value ) /1.5 + 0.5) 2. dp: 很简单,和 dip 是一样的。 3. px: pixels( 像素 ) ,不同的设备不同的显示屏显示效果是相同的,这是绝对像素,是多少就 永远是多少不会改变。 4. sp: scaled pixels( 放大像素 ). 主要用于字体显示 best for textsize 。 备注 : 根据 google 的推荐,像素统一使用 dip ,字体统一使用 sp 举个例子区别 px 和 dip : px 就是像素,如果用 px, 就会用实际像素画,比个如吧,用画一条长度为 240px 的横线,在 480 宽的模拟器上看就是一半的屏宽,而在 320 宽的模拟器上看就是 2 / 3 的屏宽了。 而 dip ,就是把屏幕的高分成 480 分,宽分成 320 分。比如你做一条 160dip 的横线,无论你 在 320 还 480 的模拟器上,都是一半屏的长度。