解决方案 »

  1.   

    p是虚拟像素,在不同的像素密度的设备上会自动适配,比如:
    在320x480分辨率,像素密度为160,1dp=1px
    在480x800分辨率,像素密度为240,1dp=1.5px
    计算公式:1dp*像素密度/160 = 实际像素数drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
    (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
    (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
    (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
    系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数
    dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,
    dp和px的换算公式 :
    dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。
     
    sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。
    sp 与 px 的换算公式:sp*ppi/160 = px
     
    总结得出:
    px = dp*ppi/160
    dp = px / (ppi / 160)
    px = sp*ppi/160
    sp = px / (ppi / 160)
    dp = sp?