MAUI Android应用图标尺寸异常(裁剪/过大)求助
MAUI Android应用图标裁剪/尺寸异常问题解决
问题现象
配置MAUI Android应用图标时,图标显示异常,存在裁剪且尺寸过大,但iOS端显示正常。
项目配置信息
csproj配置
<ItemGroup> <MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appicon.svg" BaseSize="48,48" Color="#ffffff" /> </ItemGroup>
AndroidManifest配置
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.XXXXX" android:versionName="110.0" android:versionCode="110"> <application android:allowBackup="true" android:supportsRtl="true" android:label="Leafwords" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round"> <service android:name="communityToolkit.maui.media.services" android:exported="false" android:enabled="true" android:foregroundServiceType="mediaPlayback"> <intent-filter> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> <intent-filter> <action android:name="androidx.media3.session.MediaSessionService"/> </intent-filter> </service> </application> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" /> <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-feature android:name="android.hardware.location" android:required="false" /> <uses-feature android:name="android.hardware.location.gps" android:required="false" /> <uses-feature android:name="android.hardware.location.network" android:required="false" /> <queries> <intent> <action android:name="android.intent.action.SENDTO" /> <data android:scheme="mailto" /> </intent> </queries> <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="34" /> </manifest>
显示效果
Android端图标

iOS端图标

解决方案
1. 修正MauiIcon配置
当前MauiIcon同时设置Include和ForegroundFile为同一个SVG文件,会导致MAUI生成Android图标时尺寸计算错误。建议调整为:
<ItemGroup> <!-- 无需背景色时直接使用单图标 --> <MauiIcon Include="Resources\AppIcon\appicon.svg" BaseSize="48,48" /> <!-- 需要背景色时拆分前景/背景文件 --> <!-- <MauiIcon Include="Resources\AppIcon\appicon_background.svg" ForegroundFile="Resources\AppIcon\appicon_foreground.svg" BaseSize="48,48" Color="#ffffff" /> --> </ItemGroup>
2. 检查SVG文件的ViewBox
确保appicon.svg包含正确的viewBox属性(如viewBox="0 0 1024 1024"),MAUI依赖该属性完成图标缩放。缺失ViewBox会导致Android端尺寸异常。
3. 符合Android图标规范
调整SVG内容位置:将图标主体放在画布中心,四周保留10%-20%的安全边距,避免圆形图标被系统裁剪。
4. 强制重新生成图标
- 删除项目下的
obj和bin目录 - 重启开发工具
- 重新构建项目
5. 验证AndroidManifest配置
可暂时移除android:roundIcon="@mipmap/appicon_round"属性测试,排查圆形图标资源是否存在生成异常。
内容的提问来源于stack exchange,提问作者hugo
相关产品推荐
相关产品推荐

