返回介绍

重要概念

发布于 2025-02-27 12:31:53 字数 2398 浏览 0 评论 0 收藏 0

什么是屏幕尺寸、屏幕分辨率、屏幕像素密度?
什么是 dp、dip、dpi、sp、px?他们之间的关系是什么?
什么是 mdpi、hdpi、xdpi、xxdpi?如何计算和区分?

在下面的内容中我们将介绍这些概念。

屏幕尺寸

屏幕尺寸指屏幕的对角线的长度,单位是英寸,1 英寸=2.54 厘米

比如常见的屏幕尺寸有 2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0 等

屏幕分辨率

屏幕分辨率是指在横纵向上的像素点数,单位是 px,1px=1 个像素点。一般以纵向像素 横向像素,如 1960 1080。

屏幕像素密度

屏幕像素密度是指每英寸上的像素点数,单位是 dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小。

dp、dip、dpi、sp、px

px 我们应该是比较熟悉的,前面的分辨率就是用的像素为单位,大多数情况下,比如 UI 设计、Android 原生 API 都会以 px 作为统一的计量单位,像是获取屏幕宽高等。

dip 和 dp 是一个意思,都是 Density Independent Pixels 的缩写,即密度无关像素,上面我们说过,dpi 是屏幕像素密度,假如一英寸里面有 160 个像素,这个屏幕的像素密度就是 160dpi,那么在这种情况下,dp 和 px 如何换算呢?在 Android 中,规定以 160dpi 为基准,1dip=1px,如果密度是 320dpi,则 1dip=2px,以此类推。

假如同样都是画一条 320px 的线,在 480 800 分辨率手机上显示为 2/3 屏幕宽度,在 320 480 的手机上则占满了全屏,如果使用 dp 为单位,在这两种分辨率下,160dp 都显示为屏幕一半的长度。这也是为什么在 Android 开发中,写布局的时候要尽量使用 dp 而不是 px 的原因。

而 sp,即 scale-independent pixels,与 dp 类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。

mdpi、hdpi、xdpi、xxdpi

其实之前还有个 ldpi,但是随着移动设备配置的不断升级,这个像素密度的设备已经很罕见了,所在现在适配时不需考虑。

mdpi、hdpi、xdpi、xxdpi 用来修饰 Android 中的 drawable 文件夹及 values 文件夹,用来区分不同像素密度下的图片和 dimen 值。

那么如何区分呢?Google 官方指定按照下列标准进行区分:

名称像素密度范围
mdpi120dpi~160dpi
hdpi160dpi~240dpi
xhdpi240dpi~320dpi
xxhdpi320dpi~480dpi
xxxhdpi480dpi~640dpi

在进行开发的时候,我们需要把合适大小的图片放在合适的文件夹里面。下面以图标设计为例进行介绍。

在设计图标时,对于五种主流的像素密度(MDPI、HDPI、XHDPI、XXHDPI 和 XXXHDPI)应按照 2:3:4:6:8 的比例进行缩放。例如,一个启动图标的尺寸为 48x48 dp,这表示在 MDPI 的屏幕上其实际尺寸应为 48x48 px,在 HDPI 的屏幕上其实际大小是 MDPI 的 1.5 倍 (72x72 px),在 XDPI 的屏幕上其实际大小是 MDPI 的 2 倍 (96x96 px),依此类推。

虽然 Android 也支持低像素密度 (LDPI) 的屏幕,但无需为此费神,系统会自动将 HDPI 尺寸的图标缩小到 1/2 进行匹配。

下图为图标的各个屏幕密度的对应尺寸

屏幕密度图标尺寸
mdpi48x48px
hdpi72x72px
xhdpi96x96px
xxhdpi144x144px
xxxhdpi192x192px

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文