关于 maui-app-icons-splash
.NET MAUI 图标与启动屏幕设计技能,面向配置跨平台应用资源的开发者。它汇总 Android 自适应图标安全区、SVG 缩放及构建问题的实践建议。
主要功能
- 01图标与启动屏幕配置检查
- 02Android 自适应图标安全区建议
- 03SVG 与 PNG 资源排错
- 04BaseSize 尺寸配置提示
- 05真机测试清单
适用场景
- 01排查图标显示为空或被裁切
- 02解决 SVG 构建渲染问题
- 03修正特定平台的图标尺寸
- 04检查项目启动屏幕配置
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davidortinau/ maui-skills --skill maui-app-icons-splash安装后在 Claude Code 中输入/maui-app-icons-splash确认已加载。
附带文件references/icons-splash-api.md
详细介绍
.NET MAUI 应用图标与启动屏幕
常见问题
❌ Android 自适应图标被裁切
Android 自适应图标会裁切为圆形或圆角方形安全区域。如果前景填满画布,就会被裁切。
<MauiIcon Include="Resources\AppIcon\appicon.svg"
Color="#512BD4" />
<MauiIcon Include="Resources\AppIcon\appicon.svg"
ForegroundFile="Resources\AppIcon\appiconfg.svg"
ForegroundScale="0.65"
Color="#512BD4" />
❌ 启动屏幕的 Color 透明
某些平台会忽略启动屏幕 Color 中的 alpha 值,并显示黑色。
<MauiSplashScreen Include="Resources\Splash\splash.svg"
Color="#00FFFFFF" />
<MauiSplashScreen Include="Resources\Splash\splash.svg"
Color="#512BD4" />
❌ 混淆 Color 与 TintColor
Color= 图标或启动屏幕后方的背景填充色。TintColor= 重新着色前景图像本身。
如果只设置 TintColor,而没有可见的前景路径,图标就会空白。
⚠️ 构建时 SVG 渲染问题
包含渐变、滤镜或蒙版的复杂 SVG,可能无法通过 Microsoft.Maui.Resizetizer MSBuild 任务正确栅格化。
<MauiIcon Include="Resources\AppIcon\appicon.png"
Resize="false" />
⚠️ BaseSize 不匹配
如果 SVG 的 viewBox 与所需逻辑尺寸不匹配,请明确设置 BaseSize,否则输出尺寸可能不正确。
<MauiIcon Include="Resources\AppIcon\appicon.svg"
BaseSize="456,456"
Color="#512BD4" />
最佳实践
- 尽可能使用 SVG——一个文件、无限缩放、更小的代码仓库。
- 当 SVG 的 viewBox 与所需逻辑尺寸不匹配时,明确设置
BaseSize。 - 保持启动屏幕图像简单——大型或复杂的 SVG 会拖慢构建速度,还可能产生渲染瑕疵。
- 在真实设备上测试——模拟器的屏幕密度会掩盖图标裁切问题,尤其是 Android 自适应图标的安全区域问题。
- 为 Android 使用组合图标——
ForegroundFile+ForegroundScale="0.65"可确保前景位于安全区域内。
快速故障排查
| 现象 | 可能的解决方法 |
|---|---|
| 图标显示为空白或白色 | 检查 Color 与 TintColor;确保存在 SVG 路径 |
| 启动屏幕显示默认 .NET 徽标 | 确认 .csproj 中包含 MauiSplashScreen 项 |
| Android 图标看起来被裁切 | 使用 ForegroundScale="0.65" 的组合图标 |
| SVG 导致构建错误 | 简化 SVG,或改用 Resize="false" 的 PNG |
| 图标在某个平台上的尺寸不正确 | 在 .csproj 中明确设置 BaseSize |
检查清单
-
.csproj中存在MauiIcon项,且已设置Color -
.csproj中存在MauiSplashScreen项,且已设置Color和BaseSize - Android:使用组合图标,并通过
ForegroundScale确保符合安全区域要求 - SVG 源文件简单(无渐变或滤镜),或使用
Resize="false"的 PNG 作为备用 - 已在真实设备(而非仅在模拟器)上测试屏幕密度和裁切情况
评论
支持 Markdown