无规矩不成方圆,按规矩办事都有好的结果。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 2160×3840 mipmap-xxxhdpi 4 640 1 dp = 4px (640dpi/160=4px) .png(32位、透明)
XXHDPI 1080×1920 mipmap-xxhdpi 3 480 1 dp = 3px (480dpi/160=3px) .png(32位、透明)
XHDPI 720×1280 mipmap-xhdpi 2 320 1 dp = 2px (320dpi/160=2px) .png(32位、透明)
HDPI 480×800 mipmap-hdpi 1.5 240 1 dp = 1.5px (240dpi/160=1.5px) .png(32位、透明)
MDPI 320×480 mipmap-mdpi 1 160(Baseline) 1 dp = 1px (160dpi/160=1px) .png(32位、透明)
LDPI 240×320 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的比例。

配以图说明如下:
在这里插入图片描述
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要尺寸的时候都要去查资料,总觉得很烦,就参照其他大佬的文章自己整理了一份,省得每次都要去查
参照文章如下:
https://blog.csdn.net/Cricket_7/article/details/103413209
http://www.aoaoyi.com/archives/1341.html

版权声明:本文为匿名原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: