如何在API 25以上版本设置Android启动图标及生成启动图标?
嘿,我来帮你把这两个问题讲清楚~
一、现有配置下修改启动图标要改哪些文件?
你的Manifest里配置了两个图标相关属性:
android:icon="@mipmap/ic_launcher":这是所有Android版本都会用到的通用启动图标android:roundIcon="@mipmap/ic_launcher":这是给API 25+(Android 7.1及以上)系统准备的圆形图标入口
mipmap文件夹里的多个ic_launcher相关文件,其实是对应不同屏幕密度的版本(比如mdpi、hdpi、xhdpi等),系统会根据用户设备的屏幕自动匹配对应的文件。所以要修改启动图标:
- 如果想替换所有设备的默认图标:把mipmap各个密度文件夹(mdpi/hdpi/xhdpi/xxhdpi/xxxhdpi)下的
ic_launcher.*(一般是png格式)替换成你自己的图标文件,保持文件名一致。 - 如果想单独修改API25+的圆形图标:建议你先给圆形图标单独准备资源(比如命名为
ic_launcher_round),然后把Manifest里的android:roundIcon改成@mipmap/ic_launcher_round,再替换各密度文件夹下的ic_launcher_round.*文件。如果继续用同一个ic_launcher资源,系统会自动把方形图标裁剪成圆形,可能会出现图标显示不全的问题。
二、API版本高于25(API26+)的启动图标设置方法
从Android 8.0(API26)开始,系统支持自适应图标(Adaptive Icons),它能适配不同设备的图标形状(圆形、圆角矩形、方形等),不用再为每种形状单独做图标。具体设置方法有两种:
方法1:手动配置资源
- 在
res目录下新建mipmap-anydpi-v26文件夹,这个文件夹里的资源只会被API26+的系统加载。 - 在该文件夹下创建
ic_launcher.xml和ic_launcher_round.xml(如果需要区分通用和圆形),内容示例:
<!-- ic_launcher.xml --> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 背景层:可以是颜色或图片 --> <background android:drawable="@color/icon_background"/> <!-- 前景层:图标主体,要避开边缘(系统会裁剪) --> <foreground android:drawable="@mipmap/ic_launcher_foreground"/> </adaptive-icon>
- 准备前景资源:在mipmap各密度文件夹下放入
ic_launcher_foreground.png(图标主体,透明背景,不要占满整个画布,留一些边距避免被裁剪)。 - 背景可以用颜色(在
colors.xml里定义)或者图片资源,放在drawable或mipmap文件夹。 - 保持Manifest里的
android:icon和android:roundIcon配置不变,API26+系统会自动加载自适应图标,旧版本则加载传统的png图标。
方法2:用Android Studio的Image Asset向导(更简单)
Android Studio提供了可视化工具来生成自适应图标,不用手动写代码:
- 右键点击
res目录 → 选择New→Image Asset - 在弹出的窗口中,选择
Launcher Icons (Adaptive and Legacy)类型 - 分别设置前景层(Foreground Layer)和背景层(Background Layer),可以选择本地图片、颜色或者系统自带图标
- 点击
Next和Finish,AS会自动生成所有需要的资源文件(包括自适应图标xml、各密度的前景/背景资源),并自动更新Manifest配置,非常省心。
内容的提问来源于stack exchange,提问作者Osan Kumar Singh
相关产品推荐
相关产品推荐

