首页 > 代码库 > Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)
Android视觉规范-间距规范与文字规范单位换算(dip、sp与px)
1、dip与px
Android工程师在写页面时,margin值的单位是dip,而视觉设计师通常情况下是通过px来控制margin值的,不同单位之间的差别是什么呢?看下面的参数。
在WVGA(800x480)下dip与px之间的视觉测算结果:
1dip=2px | 9dip=14px | 17dip=26px |
2dip=3px | 10dip=15px | 18dip=27px |
3dip=5px | 11dip=17px | 19dip=29px |
4dip=6px | 12dip=18px | 20dip=30px |
5dip=8px | 13dip=20px | 21dip=31px |
6dip=9px | 14dip=21px | |
7dip=11px | 15dip=23px | |
8dip=12px | 16dip=24px | |
根据上述数值可以得出一个在WVGA下dip与px的换算公式(2N代表任意偶数,2N-1代表小与偶数1的奇数):
a. 2N + 2N/2 = PX
b.(2N-1)+ 2N/2 = PX
注:偶数值dip 的1.5倍等于相对应的px值,偶数值的间距与奇数元素设置居中对齐的时候会有1px的误差,仔细看可能会不是很美观(如下图)。
A与B居中对齐时有一个值的差,C与D可以完美居中对齐。
但是这种情况发生的几率还是非常小的,只有在细扣页面的时候常见到,遇到时应急处理一下也可以解决问题,但是如果在一开始设计时就注意了的话,后面细扣也不会出现问题的,也就省去了应急处理的时间,在一定程度上可以提高效率。
在HVGA(320x480)下dip与px之间的视觉测算结果:
1dip=1px | 9dip=9px | 17dip=17px |
2dip=2px | 10dip=10px | 18dip=18px |
3dip=3px | 11dip=11px | 19dip=19px |
4dip=4px | 12dip=12px | 20dip=20px |
5dip=5px | 13dip=13px | 21dip=21px |
6dip=6px | 14dip=14px | |
7dip=7px | 15dip=15px | |
8dip=8px | 16dip=16px | |
根据上述参数得出的结果是dip值等于px值。
由上述得出,视觉设计师在WVGA(480x800)模式下设计,建议最佳间距是:12px、18px、24px、30px、36px、42px、48px,由于dip、px值在HVGA\WVGA 对应的都是偶数,各个元素能做到最严格的对齐。
二、sp与px
在WVGA(800x480)下sp与px之间的视觉测算结果:
7sp=11px | 15sp=23px | 23sp=35px |
8sp=12px | 16sp=24px | 24sp=36px |
9sp=14px | 17sp=26px | 25sp=38px |
10sp=15px | 18sp=27px | 26sp=39px |
11sp=17px | 19sp=29px | 27sp=41px |
12sp=18px | 20sp=30px | 28sp=42px |
13sp=20px | 21sp=31px | 29sp=44px |
14sp=21px | 22sp=33px | 30sp=45px |
根据上述参数得出的结果:
sp与px之间的换算公式与dip与px的换算公式相同:
a. 2N + 2N/2 = PX
b.(2N-1)+ 2N/2 = PX
在HVGA(320x480)下sp与px之间的换算结果:
7sp=7px | 15sp=15px | 23sp=23px |
8sp=8px | 16sp=16px | 24sp=24px |
9sp=9px | 17sp=17px | 25sp=25px |
10sp=10px | 18sp=18px | 26sp=26px |
11sp=11px | 19sp=19px | 27sp=27px |
12sp=12px | 20sp=20px | 28sp=28px |
13sp=13px | 21sp=21px | 29sp=29px |
14sp=14px | 22sp=22px | 30sp=30px |
根据上述参数得出的结果是sp值等于px值。
由上述得出,视觉设计师在WVGA(480x800)模式下设计,建议常用最佳字号是:18px、24px、30px、36px、42px,在一些需要严格对齐的位置,这几个参数的文字是不会出问题的,当然其他的字号也是可以用的,毕竟应用中不是所有的文字都需要严格的对齐。
知识普及:
sp、dip,Android默认单位,可根据不同的屏幕大小自适应,同样的字号,不同的屏幕尺寸下显示的视觉效果大小不同。
Px属于固定像素值,不会主动自适应屏幕大小,不同的屏幕尺寸下显示的视觉效果大小效果相同。