Android APP启动图标尺寸
无规矩不成方圆,按规矩办事都有好的结果。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”,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源:
-
如果drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹中有同一张图片资源的不同密度表示,那么系统会去加载drawable_mdpi文件夹中的资源;
-
如果drawable-hpdi中有高密度图片,其它两个文件夹中没有对应图片资源,那么系统会去加载drawable-hdpi中的资源,其他同理;
-
如果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