Android 10设备上应用图标出现白色边框如何解决?
Android 10设备上应用图标出现强制白边的解决方案
你遇到的白边是Android 8.0+自适应图标(Adaptive Icons)规范的系统兜底逻辑:当Launcher检测到应用图标不符合自适应图标配置要求时,会自动给图标套上白色边框做统一适配,Sonim XP8这类定制工业系统的校验规则比原生安卓更严格,只要配置有疏漏就会触发这个兜底。
你之前单独替换ic_launcher、ic_launcher_round、ic_launcher_foreground文件无效,核心原因是没有完成自适应图标的完整配置,系统仍然判定你的图标不符合规范。
具体配置步骤
1. 准备合规的图标素材
- 前景层:使用你的图标主体素材,画布总尺寸为108dp108dp,核心图标内容必须放在中间72dp72dp的安全区内,四周预留18dp的冗余空间,适配系统的圆角裁切、视差动效逻辑
- 背景层:准备和你图标设计一致的不透明背景素材(如果是纯色底直接用纯色即可),不要留任何透明区域,尺寸和前景层保持一致
2. 创建自适应图标XML配置
在项目的res/mipmap-anydpi-v26目录下新建两个配置文件:
ic_launcher.xmlic_launcher_round.xml
两个文件的代码内容完全一致,参考如下:
<?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@mipmap/ic_launcher_background"/> <foreground android:drawable="@mipmap/ic_launcher_foreground"/> </adaptive-icon>
3. 放置对应资源文件
- 将切好的前景素材按分辨率匹配,命名为
ic_launcher_foreground.png,放入对应密度的mipmap目录(mipmap-mdpi、mipmap-hdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi) - 将准备好的背景素材按分辨率匹配,命名为
ic_launcher_background.png,放入上述对应密度的mipmap目录 - Android 7.1及以下版本不受自适应图标规则约束,你可以直接将无白边的完整图标按分辨率切好,命名为
ic_launcher.png、ic_launcher_round.png放入对应mipmap目录即可
针对Sonim XP8设备的注意事项
- 绝对不要在v26及以上版本的图标配置中使用透明背景,只要系统检测到图标区域存在未被背景层覆盖的透明像素,就会自动填充白色生成边框
- 配置完成后必须先卸载设备上已安装的旧版本应用,再重新安装新包,否则系统Launcher会缓存旧的图标资源,无法看到修改效果
- 不要直接使用Android Studio的Image Asset Studio自动生成的默认图标素材,自动生成的素材默认会给图标四周留边,在Sonim的定制Launcher上很容易被判定为不合规触发白边
内容的提问来源于stack exchange,提问作者Pætur Magnussen
相关产品推荐
相关产品推荐

