dp(density-independent pixels)、dip(device-independent pixels)都是指抽象像素,用来适配不同屏幕。
sp(scale-independent pixels),是安卓字体单位。
ppi(pixel per inch),指每英寸像素数
相关公式:
ppi = sqrt(长像素数平方 + 宽像素数平方) / 屏幕对角线英寸数
dp = px * 160 / ppi
sp = px * 160 / ppi
最佳实践:
文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。例如textSize="16sp"、layout_width="60dp";偶尔需要使用px单位,例如需要在屏幕上画一条细的分隔线时:
<View layout_width="match_parent" layout_height="1px"/>