如何调整Android启动器中矢量图标的大小以解决自适应图标裁剪问题
解决方案
方案1:使用inset drawable添加内边距(推荐)
该方案可以在不修改原有矢量图的前提下,给前景图标增加内边距适配自适应图标的安全显示区域,完全不影响原矢量文件在应用其他位置的复用。
操作步骤:
- 新建drawable资源文件(可命名为
ic_launcher_foreground_inset.xml),代码如下:
<inset xmlns:android="http://schemas.android.com/apk/res/android" android:inset="16dp"> <item android:drawable="@drawable/ic_myIcon" /> </inset>
一般设置12-16dp的统一内边距,即可适配绝大多数启动器的图标裁剪规则。如果需要单独调整不同方向的内边距,可替换统一的android:inset属性,使用android:insetLeft、android:insetTop、android:insetRight、android:insetBottom分别配置。
2. 修改原自适应图标配置,将foreground属性指向新建的inset drawable:
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@color/appColorDark" /> <foreground android:drawable="@drawable/ic_launcher_foreground_inset" /> </adaptive-icon>
方案2:使用scale drawable按比例缩放
如果需要按固定比例缩小图标,不需要单独调整各边边距,可以使用scale drawable实现:
- 新建drawable资源文件(可命名为
ic_launcher_foreground_scaled.xml),代码如下:
<scale xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/ic_myIcon" android:scaleGravity="center" android:scaleWidth="80%" android:scaleHeight="80%" />
你可以根据显示效果调整scaleWidth和scaleHeight的比例值。
2. 修改自适应图标配置的foreground属性指向该文件即可。
以上两种方案都不需要修改原有矢量图ic_myIcon的内容,你在应用其他位置使用该图标时,直接引用原@drawable/ic_myIcon即可正常显示,不会带多余的边距或缩放比例。调整参数时,可以直接在Android Studio的自适应图标预览界面实时查看效果,无需反复切换矢量编辑工具。
内容的提问来源于stack exchange,提问作者Red Knight
相关产品推荐
相关产品推荐

