Android的单位和屏幕分辨率是什么,怎么换算?
- 云服务器
- 2026-07-25
- 5
单位详解
Android 开发中常用的单位包括 px、dp、sp、pt、mm、in,dp 和 sp 是最核心的密度无关单位。
| 单位 | 全称 | 说明 |
|---|---|---|
| px | Pixel | 像素点,屏幕物理显示的最小单位,不同设备上相同 px 值对应的物理尺寸可能不同。 |
| dp | Density-independent Pixel | 密度无关像素,基于 160 dpi 基准,1 dp 在 160 dpi 屏幕上等于 1 px。推荐用于布局尺寸。 |
| sp | Scale-independent Pixel | 缩放无关像素,与 dp 类似,但还会受用户字体大小设置影响。推荐用于文字大小。 |
| pt | Point | 1/72 英寸,通常用于印刷,在 Android 中较少使用。 |
| mm | Millimeter | 毫米,基于物理尺寸。 |
| in | Inch | 英寸,基于物理尺寸。 |
关键公式:px = dp (dpi / 160),例如在 320 dpi 的设备上,1 dp 等于 2 px。
屏幕分辨率与密度等级
分辨率指屏幕的像素总数,如 1080×1920 表示宽 1080 px、高 1920 px。屏幕密度(dpi)指每英寸的像素点数,决定了像素的物理大小。
Android 将屏幕密度分为几个通用等级:
| 密度等级 | 代表 dpi | 比例因子 | 常见分辨率示例 |
|---|---|---|---|
| ldpi | ~120 | 75 | 240×320 |
| mdpi | ~160 | 0(基准) | 320×480 |
| hdpi | ~240 | 5 | 480×800 |
| xhdpi | ~320 | 0 | 720×1280 |
| xxhdpi | ~480 | 0 | 1080×1920 |
| xxxhdpi | ~640 | 0 | 1440×2560 |
注意:实际 dpi 可能落在两个等级之间,系统会按最接近的等级进行缩放。

密度独立性原理
使用 dp 作为布局单位后,系统会根据设备密度自动缩放,保证同一控件在不同密度屏幕上呈现相近的物理尺寸,例如一个 160dp 宽的按钮,在 mdpi 屏幕上占 160 px,在 xhdpi 屏幕上占 320 px,物理宽度大致相同。

资源文件夹的匹配规则
为了适配不同密度,可以在 res 下创建对应文件夹:
- drawable-mdpi
- drawable-hdpi
- drawable-xhdpi
- drawable-xxhdpi
- drawable-xxxhdpi
系统会根据设备密度加载对应文件夹中的资源,若无匹配则向上或向下取最接近的。
相关问题与解答
为什么 Android 推荐使用 dp 而不是 px 来做布局尺寸?
解答:dp 是密度无关单位,能保证在不同屏幕密度的设备上显示大致相同的物理尺寸,如果使用 px,同一个控件在低密度屏上可能显得很大,在高密度屏上却很小,导致布局不一致,而 dp 通过系统自动缩放,简化了多屏幕适配工作。
sp 和 dp 有什么区别?什么时候用 sp 什么时候用 dp?
解答:sp 与 dp 类似,都基于 160 dpi 基准,但 sp 额外受用户系统字体大小设置的影响,当用户增大系统字体时,使用 sp 的文本会相应放大,符合无障碍需求;而使用 dp 的文本则不会变化。因此文字大小应使用 sp,其他布局尺寸(如宽高、间距)应使用 dp,以保证界面整体布局不随字体缩放而破坏。
