Android Adaptive icon前景层尺寸过大,如何调整到应用图标规范大小
Android自适应图标前景尺寸过大的规范解决方案
官方尺寸规范
Android自适应图标标准总尺寸为108x108dp,其中仅内部66x66dp的区域为安全显示区,四周21dp范围为预留裁剪区,会被不同设备Launcher的蒙版(圆形、圆角矩形、异形等)裁剪掉,你的前景图显示过大就是因为内容超出了安全显示区范围。
可选解决方案
方案1:直接调整现有PNG资源(无需修改XML代码)
按各dpi对应的安全区尺寸导出PNG,四周留足透明边,保证所有可见内容都在对应尺寸范围内:
- mdpi:66x66px
- hdpi:99x99px
- xhdpi:132x132px
- xxhdpi:198x198px
- xxxhdpi:264x264px
方案2:通过XML嵌套inset标签缩放(无需修改原PNG资源)
修改你的自适应图标XML代码,给前景套一层inset,向内缩进对应数值即可把前景限定在安全区,示例代码如下:
<?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@drawable/launcher_backg" /> <foreground> <inset android:drawable="@drawable/logo" android:inset="21dp" /> </foreground> </adaptive-icon>
可根据你的logo样式微调inset数值,比如设置为18dp~22dp之间的数值适配视觉效果。
方案3:最优规范方案(推荐)
将前景PNG转换为矢量Drawable资源,直接在矢量文件内部调整viewport和组缩放比例,把内容限定在安全区范围内,矢量图可适配所有dpi不会失真,也无需制作多套分辨率资源。
注意事项
- 不要给前景图标添加自带的圆角、蒙版、阴影效果,以上效果均由不同设备的Launcher自动生成,手动添加会导致不同设备显示错位。
- 如果背景层为纯色,建议直接引用色值资源,无需使用矢量图,性能更优。
内容的提问来源于stack exchange,提问作者Tschogge
相关产品推荐
相关产品推荐

