无规矩不成方圆,按规矩办事都有好的结果。Android也有自家的一套规则,其中Icon就是有诸多规则,这些还是要遵循的,不为别的,就是大家都在按章就你搞特殊化,后果真的要自负。虽然这个规则一变再变,但因出师有因——人的审美再变。

一、Icon的尺寸规则

名称

大小(px)

位置

比例(以mdpi为基数 1)

屏幕密度(DPI)

边距

格式

圆角尺寸

XXXHDPI

192×192

mipmap-xxxhdpi

4

640 DPI

12 to 16 pixels

.png(32位、透明)

33.685px

XXHDPI

144×144

mipmap-xxhdpi

3

480 DPI

8 to 12 pixels

.png(32位、透明)

25.263px

XHDPI

96×96

mipmap-xhdpi

2

320 DPI

6 to 8 pixels

.png(32位、透明)

16.843px

HDPI

72×72

mipmap-hdpi

1.5

240 DPI

4 to 6 pixels

.png(32位、透明)

12.632px

MDPI

48×48

mipmap-mdpi

1

160 DPI

3 to 4 pixels

.png(32位、透明)

8.421px

MDPI

48×48

mipmap (Cupcake)

1

160 DPI

3 to 4 pixels

.png(32位、透明)

8.421px

LDPI

36×36

mipmap-ldpi

0.75

120 DPI

2 to 3 pixels

.png(32位、透明)

6.316px

NA

512×512

Google Play

NA

NA

32 to 42 pixels

.png(32位、透明)

89.825px

上图中的”边距”解释:建议在设计过程中,在四周空出几个像素点使得设计的图标与其他图标在视觉上一致,例如

96 x 96 px 图标可以画图区域大小可以设为 88 x 88 px, 四周留出4个像素用于填充(无底色)。
72 x 72 px 图标可以画图区域大小可以设为 68 x 68 px, 四周留出2个像素用于填充(无底色)。
48 x 48 px 图标可以画图区域大小可以设为 46 x 46 px, 四周留出1个像素用于填充(无底色)。
36 x 36 px 图标可以画图区域大小可以设为 34 x 34 px, 四周留出1个像素用于填充(无底色)。
注,小米图标圆角要求:
7201280 px的安卓设计界面 对应的启动图标尺寸是 96px96px 圆角约等于18px
1080*1920px的安卓界面设计 对应的启动图标尺寸是144px 144px 圆角约等于25px

二、Android 8.0以后图标的规范

在 Android 8.0 中还将带来全新的自适应图标特性——Google 似乎想通过应用图标规范来触及 Android 平台的碎片化问题。

名称

背景大小(px)

前景中图标大小(px)

位置

比例(以mdpi为基数 1)

格式

XXXHDPI

432×432

288×288

mipmap-xxxhdpi

4

.png(32位、透明)

XXHDPI

324×324

216×216

mipmap-xxhdpi

3

.png(32位、透明)

XHDPI

216×216

144×144

mipmap-xhdpi

2

.png(32位、透明)

HDPI

162×162

108×108

mipmap-hdpi

1.5

.png(32位、透明)

MDPI

108×108

72×72

mipmap-mdpi

1

.png(32位、透明)

LDPI

81×81

54×54

mipmap-ldpi

0.75

.png(32位、透明)

NA

540×540

360×360

Google Play

5

.png(32位、透明)

三、Android mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi

名称

屏幕分辨率

位置

比例(以mdpi为基数 1)

dpi(范围值)

1dp=“x”px (px=dpi/Baseline)

格式

XXXHDPI

2160x3840

mipmap-xxxhdpi

4

640

1 dp = 4px (640dpi/160=4px)

.png(32位、透明)

XXHDPI

1080x1920

mipmap-xxhdpi

3

480

1 dp = 3px (480dpi/160=3px)

.png(32位、透明)

XHDPI

720x1280

mipmap-xhdpi

2

320

1 dp = 2px (320dpi/160=2px)

.png(32位、透明)

HDPI

480x800

mipmap-hdpi

1.5

240

1 dp = 1.5px (240dpi/160=1.5px)

.png(32位、透明)

MDPI

320x480

mipmap-mdpi

1

160(Baseline)

1 dp = 1px (160dpi/160=1px)

.png(32位、透明)

LDPI

240x320

mipmap-ldpi

0.75

120

1 dp = 0.75px (120dpi/160=0.75px)

.png(32位、透明)

文档中介绍他们之间的关系,告知他们的比例为2:3:4:6:8,其实就是160、240、320、480、640的比例。

配以图说明如下:

APP android 图标 尺寸 app桌面图标尺寸_android


AndroidManifest.xml 在中Menifest中添加子元素设置

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

android:anyDensity=“false”,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:

  1. 如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;
  2. 如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;
  3. 如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi中没有,系统会加载drawable-mdpi中的资源,其他同理,使用最接近的密度级别。

每次UI要尺寸的时候都要去查资料,总觉得很烦,就参照其他大佬的文章自己整理了一份,省得每次都要去查