Android 12下使用flutter_native_splash生成的启动图标异常求助
解决Android 12启动屏图标模糊/尺寸异常问题
1. 准备合规的原始图标
- 必须提供1024x1024px以上的高分辨率方形图标,无需提前裁剪圆形,Android 12会自动适配圆形遮罩
- 图标主体居中,边缘预留至少20%的留白,避免被系统截断
2. 配置flutter_native_splash的Android 12专属参数
在pubspec.yaml中单独配置Android 12的启动屏规则:
flutter_native_splash: color: "#ffffff" # 启动屏底色 image: assets/images/your_high_res_logo.png # 你的高清图标路径 android_12: image: assets/images/your_high_res_logo.png # 复用高清图标 icon_background_color: "#ffffff" # 图标背景色,需和启动屏底色一致 icon_scale: 0.7 # 图标缩放比例,默认0.6,可根据效果微调
注意:Android 12的配置必须放在
android_12节点下,不能和通用配置混用
3. 清理缓存并重新生成启动屏
执行以下命令彻底重置资源:
# 清除旧启动屏资源 flutter pub run flutter_native_splash:remove # 重新生成适配资源 flutter pub run flutter_native_splash:create
4. 验证Android端样式配置
检查android/app/src/main/res/values-v31/styles.xml,确保启动样式引用正确:
<style name="LaunchTheme" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/flutter_native_splash_background</item> <item name="windowSplashScreenAnimatedIcon">@mipmap/flutter_native_splash_icon</item> <item name="windowSplashScreenIconBackgroundColor">@color/flutter_native_splash_icon_background</item> <item name="postSplashScreenTheme">@style/AppTheme</item> </style>
不要手动修改生成的mipmap资源,确保系统自适应图标逻辑未被覆盖
常见问题排查
- 图标模糊:确认原始图标分辨率足够,禁止用低像素图放大
- 图标截断:增加原始图标留白,或降低
icon_scale数值 - 尺寸异常:完全依赖flutter_native_splash自动生成资源,不要手动调整
内容的提问来源于stack exchange,提问作者Haya Hesham Abdel-azim
相关产品推荐
相关产品推荐

