gpt4 book ai didi

安卓工作室 : Give each variant its own icon

转载 作者:行者123 更新时间:2023-11-29 02:20:06 28 4
gpt4 key购买 nike

在 Android Studio 中,我希望我的每个应用变体都有自己的图标。

我尝试了各种方法,包括此处建议的方法 How to provide different Android app icons for different gradle buildTypes?但它不起作用

这是我在 build.graddle 文件中写的:

 flavorDimensions "marketplaceA"

productFlavors {
koanFlavor {
dimension "marketplaceA"
resValue "string", "app_name", "Koan"
manifestPlaceholders = [
appIcon: "@mipmap/ic_launcher"
]
minSdkVersion 20
targetSdkVersion 27
versionCode 3
versionName '1.1'
}
koanSEFlavor {
dimension "marketplaceA"
resValue "string", "app_name", "Koan SE"
manifestPlaceholders = [
appIcon: "@mipmap/ic_launcher"
]
minSdkVersion 20
targetSdkVersion 27
versionCode 3
versionName '1.1'
}
}

而且,因为我在每个变体中共享相同的资源:

  • 我没有为每个变体创建一个 res 文件夹

  • 我用 2 个版本的 xml 和 png 文件填充了主 res 文件夹的 mipmapXXX 文件夹

但是当我在模拟器中运行应用程序时图标没有出现(奇怪的是它只在我的 shield K1 平板电脑上显示,我试过的所有其他智能手机都不显示该图标)

更新:

我只是尝试将 mipmapXXX 文件夹添加到每个变体的文件夹中,在每个资源上保持完全相同的名称,仅更改 png 的内容但仍然......

问题可能与我的 launcher.xml 的内容有关吗?

<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

在 Android Studio 中,当您打开 ic_launcher.xml 文件时,您会在预览选项卡中看到该图标。现在我只看到默认图标 :S

更新二:

问题是我寻求解决方案,我将其放入每个变体的 build.gradle 中

    manifestPlaceholders = [
appIcon: "@mipmap/ic_launcher"
]

然后将两个ic_launcher文件放在默认文件夹中。我必须在 list 中添加

 android:icon="${appIcon}"

我认为这是一个糟糕的解决方案:(

我现在正在尝试寻求@W0rmH0le 解决方案,但有些地方不对

如何摆脱自适应图标以支持我的简单图标?

最终更新:

来自@W0rmH0le 和@Derek 的提示确实很有帮助,但这里的信息可以帮助我解决我的问题:

  1. AS 中的新建 -> 图像资源 UI 是唯一的方法,您可以一次又一次地使用它来尝试获得所需的图标

  2. 完成图像 Assets UI 后,执行“构建 -> 清理项目”和“构建 -> 重建项目”

  3. 在这个阶段你最好使用自适应图标,因为如果你不这样做,你的应用运行的系统可能会把你的图标变成丑陋的东西

  4. 由于您使用的是自适应图标,因此不要尝试使用透明背景。 Image Asset UI 会很好地显示它,但自适应图标背景不支持透明

  5. 最后,为了获得第 2 版的图标,我在常规过程中添加了一个图标,然后去资源管理器将 mipmapXXX 文件夹复制到一个安全的地方。然后我以常规方式添加了另一个图标。为了完成它,我将保存的 mipmap 文件夹粘贴到变体文件夹树中,如 @W0rmH0le 所述

最佳答案

实现这一目标的最简单方法是为每种风格创建一个新的资源文件夹。

例如:

\src
|
| -- \main
| |
| | --- \res -> Here, you place all default and common icons
|
| -- \koanFlavor
| |
| | --- \res -> Add only the icons that are different from default one
|
| -- \koanSEFlavor
| |
| | --- \res -> If you have one icon that are different from main and koanFlavor, you can place here

一个观察:这些图标不同,但它们应该共享相同的名称。

您不需要为每种口味创建一个文件夹...即使您有 2 种口味,您也不需要创建 2 个额外的文件夹(koanFlavorkoanSEFlavor)。您可以将一种风格的所有图标放在主文件夹中。这样,您只需创建一个额外的文件夹来支持另一种风格。

您也不需要复制所有图标。在 flavor 的文件夹中,您应该只添加那些与主文件夹不同的图标。

编辑

您的图标是通过 gradle 在以下位置定义的:

manifestPlaceholders = [
appIcon: "@mipmap/ic_launcher"
]

这是 ic_laucher 是将用作启动器图标的图标。所以,ic_launcher.png 是您应该移动到特定文件夹的图标

关于安卓工作室 : Give each variant its own icon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56789831/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com