如何动态设置android:icon

时间:2020-05-07 12:23:25

标签: android react-native

我正在使用react-native-config以便能够在不同的环境中进行构建。目的之一是根据环境使用不同的图标。我可以在iOS上使用它,但在Android上却遇到麻烦。

我有一个@string资源: <string name="exchange_name">@string/REACT_APP_EXCHANGE_NAME</string>

从我的.env文件中插入REACT_APP_EXCHANGE_NAME变量(react-native-config magic)。 我的问题是,如何根据该字符串资源的值使用不同的图标?

类似: android:icon={exchange_name == 'something' ? @mipmap/icon1 : @mipmap/icon2}

1 个答案:

答案 0 :(得分:0)

没关系,找到了一种方法:Gradle productFlavors。

    productFlavors{
        env_1 {
            manifestPlaceholders = [
                appIcon: "@mipmap/splash_icon_1"
            ]
        }

        env_2 {
            manifestPlaceholders = [
                appIcon: "@mipmap/splash_icon_2"
            ]
        }
    }

要运行:

npx react-native run-android --variant env_1