图标

本节介绍如何为各种平台配置应用程序的图标。有关启动画面图像的文档可以在 Cordova-Plugin-Splashscreen 文档 启动画面插件文档中找到。

在 CLI 中配置图标

在 CLI 中工作时,您可以通过 <icon> 元素 (config.xml) 定义应用程序图标。如果您没有指定图标,则会使用 Apache Cordova 徽标。

    <icon src="res/ios/icon.png" platform="ios" width="57" height="57" density="mdpi" />
属性 描述
src 必需
图像文件的位置,相对于您的项目目录。
platform 可选
目标平台
width 可选
图标宽度,以像素为单位
height 可选
图标高度,以像素为单位
target 可选

设置目标以提供 applicationinstaller 的唯一图标

以下配置可用于定义将用于所有平台的单个默认图标。

    <icon src="res/icon.png" />

对于每个平台,您还可以定义一个像素完美的图标集,以适应不同的屏幕分辨率。

Android

您可以使用两个图像(背景和前景)来创建一个自适应图标,而不是使用单个图像作为图标。要在 Cordova 中使用自适应图标,至少需要 Cordova CLI 9.0.0 和 Cordova-Android 8.0.0。

Android 13 引入了主题图标,这些图标是附加到现有自适应图标上的单色图像。要在 Cordova 中使用主题图标,至少需要 Cordova CLI 12.0.0 和 Cordova-Android 12.0.0。

属性 描述
background 自适应图标必需
图像(png 或矢量)相对于您的项目目录的位置,或颜色引用
foreground 自适应图标必需
图像(png 或矢量)相对于您的项目目录的位置,或颜色引用
monochrome 对于自适应图标是可选的,但对于主题图标是必需的
图像(png 或矢量)相对于您的项目目录的位置
density 必需
指定的图标密度

自适应图标

要使用自适应图标,必须定义 backgroundforeground 和可选的 monochrome 属性,而不是 src 属性。src 属性不用于自适应图标。

使用图像的自适应图标

<platform name="android">
  <icon monochrome="res/icon/android/ldpi-monochrome.png" background="res/icon/android/ldpi-background.png" density="ldpi" foreground="res/icon/android/ldpi-foreground.png" />
  <icon monochrome="res/icon/android/mdpi-monochrome.png" background="res/icon/android/mdpi-background.png" density="mdpi" foreground="res/icon/android/mdpi-foreground.png" />
  <icon monochrome="res/icon/android/hdpi-monochrome.png" background="res/icon/android/hdpi-background.png" density="hdpi" foreground="res/icon/android/hdpi-foreground.png" />
  <icon monochrome="res/icon/android/xhdpi-monochrome.png" background="res/icon/android/xhdpi-background.png" density="xhdpi" foreground="res/icon/android/xhdpi-foreground.png" />
  <icon monochrome="res/icon/android/xxhdpi-monochrome.png" background="res/icon/android/xxhdpi-background.png" density="xxhdpi" foreground="res/icon/android/xxhdpi-foreground.png" />
  <icon monochrome="res/icon/android/xxxhdpi-monochrome.png" background="res/icon/android/xxxhdpi-background.png" density="xxxhdpi" foreground="res/icon/android/xxxhdpi-foreground.png" />
</platform>

注意:在此示例中,前景色图像也将用作不支持自适应图标的 Android 设备的后备图标。可以通过设置 src 属性来覆盖后备图标。

使用矢量的自适应图标

<platform name="android">
  <icon monochrome="res/icon/android/ldpi-monochrome.png" background="res/icon/android/ldpi-background.xml" density="ldpi" foreground="res/icon/android/ldpi-foreground.xml" src="res/android/ldpi.png" />
  <icon monochrome="res/icon/android/mdpi-monochrome.png" background="res/icon/android/mdpi-background.xml" density="mdpi" foreground="res/icon/android/mdpi-foreground.xml" src="res/android/mdpi.png" />
  <icon monochrome="res/icon/android/hdpi-monochrome.png" background="res/icon/android/hdpi-background.xml" density="hdpi" foreground="res/icon/android/hdpi-foreground.xml" src="res/android/hdpi.png" />
  <icon monochrome="res/icon/android/xhdpi-monochrome.png" background="res/icon/android/xhdpi-background.xml" density="xhdpi" foreground="res/icon/android/xhdpi-foreground.xml" src="res/android/xhdpi.png" />
  <icon monochrome="res/icon/android/xxhdpi-monochrome.png" background="res/icon/android/xxhdpi-background.xml" density="xxhdpi" foreground="res/icon/android/xxhdpi-foreground.xml" src="res/android/xxhdpi.png" />
  <icon monochrome="res/icon/android/xxxhdpi-monochrome.png" background="res/icon/android/xxxhdpi-background.xml" density="xxxhdpi" foreground="res/icon/android/xxxhdpi-foreground.xml" src="res/android/xxxhdpi.png" />
</platform>

注意:在此示例中,当使用矢量或颜色定义前景色属性时,必须定义 src 属性。

使用颜色的自适应图标

在您的项目目录中创建一个 res/values/colors.xml 资源文件,以存储应用程序的颜色定义。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="background">#FF0000</color>
</resources>

config.xml 中,我们将添加 resource-filecolors.xml 复制到适当的位置,以便在构建时可以使用这些颜色。

<platform name="android">
  <resource-file src="res/values/colors.xml" target="/app/src/main/res/values/colors.xml" />

  <icon monochrome="res/icon/android/ldpi-monochrome.png" background="@color/background" density="ldpi" foreground="res/icon/android/ldpi-foreground.png" />
  <icon monochrome="res/icon/android/mdpi-monochrome.png" background="@color/background" density="mdpi" foreground="res/icon/android/mdpi-foreground.png" />
  <icon monochrome="res/icon/android/hdpi-monochrome.png" background="@color/background" density="hdpi" foreground="res/icon/android/hdpi-foreground.png" />
  <icon monochrome="res/icon/android/xhdpi-monochrome.png" background="@color/background" density="xhdpi" foreground="res/icon/android/xhdpi-foreground.png" />
  <icon monochrome="res/icon/android/xxhdpi-monochrome.png" background="@color/background" density="xxhdpi" foreground="res/icon/android/xxhdpi-foreground.png" />
  <icon monochrome="res/icon/android/xxxhdpi-monochrome.png" background="@color/background" density="xxxhdpi" foreground="res/icon/android/xxxhdpi-foreground.png" />
</platform>

标准图标

    <platform name="android">
        <!--
            ldpi    : 36x36 px
            mdpi    : 48x48 px
            hdpi    : 72x72 px
            xhdpi   : 96x96 px
            xxhdpi  : 144x144 px
            xxxhdpi : 192x192 px
        -->
        <icon src="res/android/ldpi.png" density="ldpi" />
        <icon src="res/android/mdpi.png" density="mdpi" />
        <icon src="res/android/hdpi.png" density="hdpi" />
        <icon src="res/android/xhdpi.png" density="xhdpi" />
        <icon src="res/android/xxhdpi.png" density="xxhdpi" />
        <icon src="res/android/xxxhdpi.png" density="xxxhdpi" />
    </platform>

另请参阅

浏览器

图标不适用于浏览器平台。

iOS

    <platform name="ios">
        <!-- iOS 8.0+ -->
        <!-- iPhone 6 Plus  -->
        <icon src="res/ios/[email protected]" width="180" height="180" />
        <!-- iOS 7.0+ -->
        <!-- iPhone / iPod Touch  -->
        <icon src="res/ios/icon-60.png" width="60" height="60" />
        <icon src="res/ios/[email protected]" width="120" height="120" />
        <!-- iPad -->
        <icon src="res/ios/icon-76.png" width="76" height="76" />
        <icon src="res/ios/[email protected]" width="152" height="152" />
        <!-- Spotlight Icon -->
        <icon src="res/ios/icon-40.png" width="40" height="40" />
        <icon src="res/ios/[email protected]" width="80" height="80" />
        <!-- iOS 6.1 -->
        <!-- iPhone / iPod Touch -->
        <icon src="res/ios/icon.png" width="57" height="57" />
        <icon src="res/ios/[email protected]" width="114" height="114" />
        <!-- iPad -->
        <icon src="res/ios/icon-72.png" width="72" height="72" />
        <icon src="res/ios/[email protected]" width="144" height="144" />
        <!-- iPad Pro -->
        <icon src="res/ios/icon-167.png" width="167" height="167" />
        <!-- iPhone Spotlight and Settings Icon -->
        <icon src="res/ios/icon-small.png" width="29" height="29" />
        <icon src="res/ios/[email protected]" width="58" height="58" />
        <icon src="res/ios/[email protected]" width="87" height="87" />
        <!-- iPad Spotlight and Settings Icon -->
        <icon src="res/ios/icon-50.png" width="50" height="50" />
        <icon src="res/ios/[email protected]" width="100" height="100" />
        <!-- iTunes Marketing Image -->
        <icon src="res/ios/icon-1024.png" width="1024" height="1024" />
    </platform>

另请参阅

Electron

自定义应用程序的图标

可以在 config.xml 文件中使用 <icon> 元素声明自定义图标。可以定义两种类型的图标,应用程序图标和程序包安装程序图标。这些图标应该在 Electron 的平台节点 <platform name="electron"> 中定义。

一个图标可用于应用程序和安装程序,但此图标应至少为 512x512 像素,才能在所有操作系统上正常工作。

注意:如果未提供自定义图标,则会使用 Apache Cordova 默认图标。

注意:在 macOS 上使用 cordova run 时,不会显示自定义图标。它默认为 Electron 的图标。

<platform name="electron">
    <icon src="res/electron/icon.png" />
</platform>

您可以通过设置 target 属性来为应用程序和安装程序提供唯一的图标。如上所述,安装程序图像应为 512x512 像素,才能在所有平台上正常工作。

<platform name="electron">
    <icon src="res/electron/app.png" target="app" />
    <icon src="res/electron/installer.png" target="installer" />
</platform>

对于支持高 DPI 分辨率的设备(例如 Apple 的 Retina 显示屏),您可以创建一组具有相同基本文件名但带有其倍增器后缀的图像。

例如,如果基本图像的文件名为 icon.png 并且是标准分辨率,则 [email protected] 将被视为 DPI 从基本值翻倍的高分辨率图像。

如果要同时支持具有不同 DPI 密度的显示器,可以将不同大小的图像放在同一文件夹中,并使用不带 DPI 后缀的文件名。例如

<platform name="electron">
    <icon src="res/electron/icon.png" />
    <icon src="res/electron/[email protected]" />
    <icon src="res/electron/[email protected]" />
    <icon src="res/electron/[email protected]" target="installer" />
</platform>