Cordova -Android上的自适应图标

yizd12fk  于 2022-11-15  发布在  Android
关注(0)|答案(5)|浏览(205)

我有一个使用Android Image Asset Studio生成的图标集。但是,我不知道如何在Cordova中将这些图标设置到我的应用程序中。
在执行documentation regarding icons in Cordova时,我只使用以下代码为项目设置了方形图标:

<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>

然而,在Android奥利奥的应用程序的图标是圆的,它不能显示我的应用程序的图标在那部手机上正确。图标是缩小在圆圈内,周围有白色的背景。

问题:如何将Image Asset Studio生成的圆形图标设置到Cordova项目中?

kx7yvsdv

kx7yvsdv1#

下面是我的项目的一个经过测试的工作解决方案,它正在生产中。
将所有生成的图标复制到项目根目录下的res/android(与resourcesplatforms文件夹处于同一级别),并将以下配置添加到config.xml文件:

<widget xmlns:android="http://schemas.android.com/apk/res/android">
    <platform name="android">
        <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
            <application android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" />
        </edit-config>
        <resource-file src="res/android/drawable/ic_launcher_background.xml" target="app/src/main/res/drawable/ic_launcher_background.xml" />
        <resource-file src="res/android/mipmap-hdpi/ic_launcher.png" target="app/src/main/res/mipmap-hdpi/ic_launcher.png" />
        <resource-file src="res/android/mipmap-hdpi/ic_launcher_round.png" target="app/src/main/res/mipmap-hdpi/ic_launcher_round.png" />
        <resource-file src="res/android/mipmap-mdpi/ic_launcher.png" target="app/src/main/res/mipmap-mdpi/ic_launcher.png" />
        <resource-file src="res/android/mipmap-mdpi/ic_launcher_round.png" target="app/src/main/res/mipmap-mdpi/ic_launcher_round.png" />
        <resource-file src="res/android/mipmap-xhdpi/ic_launcher.png" target="app/src/main/res/mipmap-xhdpi/ic_launcher.png" />
        <resource-file src="res/android/mipmap-xhdpi/ic_launcher_round.png" target="app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" />
        <resource-file src="res/android/mipmap-xxhdpi/ic_launcher.png" target="app/src/main/res/mipmap-xxhdpi/ic_launcher.png" />
        <resource-file src="res/android/mipmap-xxhdpi/ic_launcher_round.png" target="app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" />
        <resource-file src="res/android/mipmap-xxxhdpi/ic_launcher.png" target="app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" />
        <resource-file src="res/android/mipmap-xxxhdpi/ic_launcher_round.png" target="app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" />
    </platform>    
</widget>

别忘了xmlns:android="http://schemas.android.com/apk/res/android"添加到您的<widget>中。
删除<icon>,如果您有一个<widget> =〉<platform =〉<icon>

将上述更改添加到config.xml后,使用ionic cordova platform remove androidsudo ionic cordova platform remove android(取决于您的环境设置)删除Android平台,然后使用ionic cordova platform add androidsudo ionic cordova platform add android再次添加Android平台。
创建构建、安装并检查结果。
我在我的产品代码中使用了上述配置,结果如下:

ivqmmu1c

ivqmmu1c2#

当你在谷歌上搜索“Cordova Android自适应图标”时,这篇SO文章是最热门的。这里建议的方法,特别是@VicJordan的答案是一个完整的解决方案。但是,应该注意的是,Cordova Android的version 8引入了自己的自适应图标支持方式,不需要你使用Android Asset Studio。
以下是您需要执行的操作

  • 删除Cordova应用程序的config.xml文件中的旧样式<icon density="?dpi" src = "path/to/icon/resource"/>语句
  • 提供<icon density = "?dpi" background = "path/to/icon/background"/>指令
  • 提供匹配的<icon density = "?dpi" background="path/to/icon/foreground"/>指令

其中? = l|m|h|x|xx|xxx
您也可以使用彩色黑背景而不是图像。有关所有这些的详细信息,请参阅Cordova 8文档。

brgchamk

brgchamk3#

您可以尝试以下操作:从“图像资源”中选择应用程序图标的图像后,将“形状”(位于“图像资源”下的“旧版”选项卡中)的属性从“方形”设置为“无”。

7gs2gvoe

7gs2gvoe4#

<splash platform="android" src="package-assets/splash_320_426.png" density="ldpi" width="320" height="426" orientation="portrait"/>

你可以把android改成ios,把src=“path”改成任何你想要的,把密度改成一个已知的设置,设置图像的宽度和高度以及方向。图标的方向是无关紧要的,但是飞溅和其他图像可能无关紧要。图标的设置如下:

<icon platform="android" src="package-assets/ldpi.png" density="ldpi" width="36" height="36"/>

当然,这将放在config.xml中,您不必将其放在platform部分中,因为您在标记中指定了平台。

xeufq47z

xeufq47z5#

使用**adaptive****vector**图标的方法如下。Asset Studio将创建3个文件(在平台res层次结构中),我们必须将其复制到Cordova项目根目录下的文件夹中。以android-res/为例。我们要查找的文件是:ic_launcher.xmlic_launcher_background.xmlic_launcher_foreground.xml中的一个或多个。
应将这些资源文件添加到config.xml

<icon src="icon.png" platform="android" />

<platform name="android">
    <!-- Adaptive icon -->
    <resource-file src="android-res/ic_launcher.xml" target="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" />
    <resource-file src="android-res/ic_launcher_background.xml" target="app/src/main/res/values/ic_launcher_background.xml" />
    <resource-file src="android-res/ic_launcher_foreground.xml" target="app/src/main/res/drawable/ic_launcher_foreground.xml" />

    <!-- rest of Android platform stuff ...  -->
</platform>

这种方式假设一个人想使用相同的图标为正常和圆形图标。请记住,一个自适应图标不一定是圆形的!* 这取决于启动器。* 自适应图标是从API 26支持,所以我们应该保持我们的默认/传统icon.png的PNG格式。

相关问题