c# - 如何为 Xamarin 文件/文件夹结构生成图标,每个文件夹中有两个图像
问题描述
目前,Android 应用程序的 Xamarin 应用程序中图标的默认结构是:
文件夹:
mipmap-hdpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
在每个文件夹中都有两个名为的 PNG 图像:
图标.png
launcher_foreground.png
我已经搜索了几个小时才能找到某种可以生成“launcher_foreground.png”图像的生成器。我见过的所有生成器只在每个文件夹中生成一个图像。
根据 Xamarin 的说法,在每个文件夹中包含两个图像是“好习惯”,但我见过的每个生成器都不会以这种方式生成图标。是否有任何人都知道的工具可以生成上述格式的每个图像?
如果没有,有没有办法可以将单个 SVG 文件用作图标?因为 SVG 文件可以动态缩放并且已经能够这样做很长时间了。有一个更好的方法吗?
解决方案
您不能使用 svg 作为您的应用程序图标,因为 Android 不支持,但您可以使用ResizetizerNT包自动将图像(svg 或 png)调整为 Android、iOS、UWP 标准所需的大小。
- 在您的所有项目(共享和本机)中下载并安装 Nuget 包。
- 将您的图像添加到共享项目中,并将其构建操作设置为“SharedImage”(此构建选项仅在安装包后可用)。
- 在您的共享项目
.csproj
文件中,BaseSize
为您的图像指定属性:它应该对应于 x1 大小或在 Android 中对应于mdpi
大小48,48
源和第二个108,108
。
<ItemGroup>
<SharedImage Include="icon.svg" BaseSize="48" />
<SharedImage Include="icon.svg" BaseSize="108" Link="launcher_foreground.png" />
</ItemGroup>
- 输出(调整大小)图像将在文件夹中找到:
obj\[Debug|Release]\100\resizetize\r\
资源
推荐阅读
- azure - 创建 3 个 VNET,其中所有流量都通过一个 VNET(中心辐射型)路由
- javascript - Mongo 并不总是返回正确的结果
- google-sheets - 谷歌表格 VLOOKUP 返回多个值
- android - 如何启动多个 FlutterActivity?
- unity3d - 如何从 Blender 中导出 .dae 动画?
- ios - 创建类似于 iOS 联系人的 UI 编辑 UI
- python - 如何创建一组 tkinter 小部件(for 循环)并单独引用它们中的每一个?
- netlogo - 协助 Netlogo 中的节点/链接导航
- tensorflow - 自定义层输出 Keras 的尺寸
- jenkins - 如何在 Jenkins Job DSL 插件的上下文中使用共享/常见的 groovy 方法