px :是屏幕的像素点
in :英寸
mm :毫米
pt :磅, 1/72 英寸
dp :一个基于 density 的抽象单位,如果一个 160dpi 的屏幕, 1dp=1px
dip :等同于 dp
sp :同 dp 相似,但还会根据用户的字体大小偏好来缩放。
建议使用 sp 作为文本的单位,其它用 dip
针对 dip 和 px 的关系,做以下概述:
HVGA 屏 density=160 ; QVGA 屏 density=120 ; WVGA 屏 density=240 ; WQVGA 屏 density=120
density 值表示每英寸有多少个显示点,与分辨率是两个概念。
不同 density 下屏幕分辨率信息,以 480dip*800dip 的 WVGA(density=240) 为例
density=120 时 屏幕实际分辨率为 240px*400px (两个点对应一个分辨率)
状态栏和标题栏高各 19px 或者 25dip
横屏是屏幕宽度 400px 或者 800dip, 工作区域高度 211px 或者 480dip
竖屏时屏幕宽度 240px 或者 480dip, 工作区域高度 381px 或者 775dip
density=160 时 屏幕实际分辨率为 320px*533px ( 3 个点对应两个分辨率)
状态栏和标题栏高个 25px 或者 25dip
横屏是屏幕宽度 533px 或者 800dip, 工作区域高度 295px 或者 480dip
竖屏时屏幕宽度 320px 或者 480dip, 工作区域高度 508px 或者 775dip
density=240 时 屏幕实际分辨率为 480px*800px (一个点对于一个分辨率)
状态栏和标题栏高个 38px 或者 25dip
横屏是屏幕宽度 800px 或者 800dip, 工作区域高度 442px 或者 480dip
竖屏时屏幕宽度 480px 或者 480dip, 工作区域高度 762px 或者 775dip
apk 的资源包中,当屏幕 density=240 时使用 hdpi 标签的资源
当屏幕 density=160 时,使用 mdpi 标签的资源
当屏幕 density=120 时,使用 ldpi 标签的资源。
不加任何标签的资源是各种分辨率情况下共用的。
布局时尽量使用单位 dip ,少使用 px