不同车型drawable不同

在build.gradle文件中

java 复制代码
productFlavors {
        platform平台1 {
            dimension 'platform'
        }
        platform平台2 {
            dimension 'platform'
        }
    }
  1. 定义了两种平台

    • platform平台1:代表平台1的配置

    • platform平台2:代表平台2的配置

  2. 它们属于同一个维度 'platform'

    • 这意味着它们是互斥的

    • 构建时只能选择其中一个

一个平台有多款车型,只有车型6图片不一样。

java 复制代码
afterEvaluate {
        if (get当前车型() == FLAVOR_车型6) {
            def currentDirs = android.sourceSets.platform平台1.res.srcDirs
            android.sourceSets.platform平台1.res.srcDirs = ['src/main/res-车型6'] + currentDirs
        }
    }

1. afterEvaluate { ... }

Kotlin 复制代码
afterEvaluate {
    // 这里的代码会在 Gradle 配置阶段完成后执行
}

作用:确保所有 Android 插件配置都已完成,可以安全地访问和修改配置。

2. 条件判断

Kotlin 复制代码
if (get当前车型() == FLAVOR_车型6) {
    // 只有当车型是 车型6时才执行
}

3. 获取当前资源目录

Kotlin 复制代码
def currentDirs = android.sourceSets.platform平台1.res.srcDirs

作用

  • 获取 platform平台1 flavor 当前配置的所有资源目录

  • srcDirs 是一个目录路径的列表

  • 保存到变量 currentDirs

4. 核心操作:添加 res-车型6 目录

Kotlin 复制代码
android.sourceSets.platform平台1.res.srcDirs = ['src/main/res-车型6'] + currentDirs

这是最关键的一行,分解说明:

复制代码
// 1. 创建一个新列表,包含 res-车型6 目录
['src/main/res-车型6']

// 2. 使用 + 运算符连接两个列表
['src/main/res-车型6'] + currentDirs

// 3. 结果示例:
//    currentDirs = ['src/main/res']
//    结果 = ['src/main/res-车型6', 'src/main/res']

// 4. 将这个新列表赋值回 srcDirs
android.sourceSets.platform平台1.res.srcDirs = 新列表

车型6先在res-车型6中找资源,没有就到res中找。

相关推荐
码云数智-园园27 分钟前
微服务架构下的分布式事务:在一致性与可用性之间寻找平衡
开发语言
C++ 老炮儿的技术栈44 分钟前
volatile使用场景
linux·服务器·c语言·开发语言·c++
hz_zhangrl44 分钟前
CCF-GESP 等级考试 2026年3月认证C++一级真题解析
开发语言·c++·gesp·gesp2026年3月·gespc++一级
Liu628881 小时前
C++中的工厂模式高级应用
开发语言·c++·算法
IT猿手1 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
AI科技星1 小时前
全尺度角速度统一:基于 v ≡ c 的纯推导与验证
c语言·开发语言·人工智能·opencv·算法·机器学习·数据挖掘
sunwenjian8862 小时前
Java进阶——IO 流
java·开发语言·python
波特率1152002 小时前
const关键字与函数的重载
开发语言·c++·函数重载
FL16238631292 小时前
[C#][winform]segment-anything分割万物部署onnx模型一键抠图演示
开发语言·c#
百锦再2 小时前
Java 并发编程进阶,从线程池、锁、AQS 到并发容器与性能调优全解析
java·开发语言·jvm·spring·kafka·tomcat·maven