App 图标为什么要准备好几套尺寸?

4 个讲解板块 · 关联 3 款站内工具 · 内容最后核对 2026-10-09

一种密度一套位图,外加一层会给厂商遮罩裁掉的自适应图标。留白留错,圆角就成了切角。

直接答案

两个原因叠在一起。第一是密度:同一张图在不同设备上的物理尺寸一样,但需要的像素数不同,所以要按密度各出一套,系统取最接近的一档,找不到就只能放大低分辨率的版本。

第二是形状:新版系统把图标拆成前景与背景两层,各自铺在 108dp 的画布上,由厂商的遮罩决定最终轮廓——圆形、圆角方形或水滴形都可能出现,而且拖拽时还有视差位移。画布虽然 108dp,但遮罩后真正稳当显示的区域要小得多,品牌图形必须缩进去。

所以「好几套尺寸」不是重复劳动,而是两件不同的事:一套对抗密度差异,一层对抗形状差异。

把图标做糊的最常见原因,不是美术没画好,而是尺寸体系没对上:设计稿按一个很大的画布做完,直接导出成一个文件,塞进项目里就完事。

真实链路里,图标要经过三层换算:设计用的画布单位、系统按密度取图的像素、以及厂商遮罩裁剪后的可见区域。只要有一层没对齐,最后都会表现成「糊」「被切」「留白太多」。

这一篇把三层换算摆清楚,并给出可以直接照抄的尺寸表。

1第一层:密度与像素

基线是 48dp,各档按比例放大。系统取最接近设备密度的那一档,取不到就缩放,于是低分辨率图被放大时就会糊。

密度档缩放比例启动图标像素
mdpi1 倍48
hdpi1.5 倍72
xhdpi2 倍96
xxhdpi3 倍144
xxxhdpi4 倍192

启动图标要放进 mipmap 目录而不是 drawable:前者在安装时会保留全部密度,方便放大显示的启动器取用;后者可能只留下与设备匹配的那一档。

2第二层:自适应图标的画布与安全区

新版系统改由前景层与背景层合成,两层都画在同一个 108dp 画布上,尺寸再乘上密度比例。

概念尺寸含义
画布108dp两层各自的作画范围,含会被裁掉的部分
遮罩视口72dp遮罩之后真正显示的区域,占画布约三分之二
安全区66dp品牌核心元素应缩在这里,占画布约六成一
预留边距每侧 18dp留给视差与脉冲动画,不要放内容

各密度的画布像素是 108、162、216、324、432;安全区对应 72、108、144、216、288。文档对安全区有 72dp 与 66dp 两种口径,取更紧的 66dp 最安全。

3第三层:商店与系统别混用一套

上架素材与设备上的图标是两件事,尺寸、格式、留白要求都不同。

用途规格注意
应用商店列表图512 像素见方,32 位 PNG 带透明通道,不超过 1 MB交方形原图,圆角由商店自己套,自己加圆角会变成双重圆角
设备启动图标按上面五档密度各一份含自适应图层或旧版单层图
通知小图标24 到 96 像素(对应五档)单色镂空,系统会再着色
网页侧图标与浏览器标签页配套的多档尺寸与应用图标保持同一个标志,便于识别

常见错法是把商店那 512 的图直接塞回项目当启动图标——那会绕过自适应图层,形状由系统强制裁切,边角必然出问题。

4导出前的四条自检

照着走一遍,基本可以避免「糊」与「切」。

从矢量或最大位图出发
别把 128 的图放大到 512,放大会留下可见的糊边
把标志缩进安全区
留白在 512 上看着优雅,在 48 上就什么都没剩;反过来,满幅的标志在圆形遮罩下会丢角
不要预烘焙圆角与投影
系统自己会加,重复叠加会出现角里套角、阴影重影
在真机上看一次
浅色与深色壁纸各看一次,一臂距离下认不出来就继续改

一句话总结:密度决定清晰度,安全区决定形状,商店素材决定第一印象——三件事三套参数。

相关疑问

可以只提供一张最高分辨率的图吗?

不推荐。系统会按需缩放,但缩放质量取决于设备上的插值实现,小尺寸下容易糊;而且低密度设备没有对应资源时,取图逻辑更不可控。

webp 或 svg 能直接当启动图标吗?

矢量图层(XML 矢量图)在自适应图标的图层上是可行的,能免去按密度导出位图的麻烦;但商店列表图仍要求位图格式,两者不能互相替代。

为什么同一个图标在不同手机上形状不一样?

这是设计如此:遮罩由厂商与启动器决定,圆形、圆角方形、水滴形都可能。安全区就是为了让这种差异不影响识别。

安全区到底按 72 还是 66?

文档里存在两种口径:参考实现把遮罩视口写为 72dp,而部分指南在单色图层场景用 66dp 作安全区。取更紧的 66dp,两种口径下都不会被裁。

内容标识:本页内容由人工智能辅助生成,并经人工核对与编辑。详见 人工智能生成内容标识说明。
内容说明:本页针对具体使用问题作答,方法步骤与数值由本站自行整理与复算,事实性内容以对应官方规范与文档为准。内容最后核对日期:2026-10-09。若发现错误,欢迎通过页脚反馈入口告知。