如何让Android应用在所有设备与主题下显示圆形启动图标?
实现全设备/主题下的圆形应用图标
嘿,我太懂你想让应用图标在任何设备和主题下都稳稳显示成圆形的需求了,之前用透明背景反而变成黑色确实挺闹心的,我来给你几个靠谱的解决办法:
方法一:正确配置自适应图标(官方推荐)
Android 8.0(API 26)及以上支持自适应图标,这是适配不同Launcher图标形状的最优方案,能完美实现全场景圆形显示:
重新创建Image Asset
- 打开Android Studio,右键点击
res文件夹 →New→Image Asset - 在
Icon Type里选Launcher Icons (Adaptive and Legacy) - 到
Background Layer环节:- 别选透明PNG图片,直接点
Color选项,输入全透明颜色代码#00000000 - 用颜色设置的透明才是真·透明,不会被Launcher默认填充成黑色
- 别选透明PNG图片,直接点
- 切换到
Foreground Layer,上传你的图标内容,一定要放在界面标注的圆形安全区域内,避免图标被裁剪 - 点击
Next和Finish,生成对应的ic_launcher(自适应通用图标)和ic_launcher_round(圆形适配图标)
- 打开Android Studio,右键点击
确认Manifest配置
你现有的Manifest配置其实没问题,只要确保生成的图标文件存在就行:<?xml version="1.0" encoding="utf-8"?> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application>android:icon是通用图标,android:roundIcon是专门给支持圆形图标的Launcher准备的,两者都配置才能覆盖所有场景
方法二:针对旧版本Android的兼容方案
如果你的应用需要支持API 25及以下的设备(自适应图标不生效),可以这么做:
- 创建Image Asset时,勾选
Legacy选项,生成对应分辨率的圆形PNG图标 - 把这些圆形图标替换到
mipmap-mdpi、mipmap-hdpi等文件夹中,确保旧设备能直接显示圆形图标
额外小提醒
- 像小米、华为这类定制化Launcher可能会对图标有特殊处理,一定要让图标前景内容在安全区内,避免被莫名裁剪
- 别再用透明PNG当自适应图标的背景层了,部分Launcher会默认把透明背景填成黑色,用颜色设置的全透明才是靠谱的
内容的提问来源于stack exchange,提问作者Dima




