侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 290 篇文章
  • 累计创建 57 个标签
  • 累计收到 98 条评论

Android 动态获取Resources 参数。

Z同学
2021-07-13 / 0 评论 / 0 点赞 / 586 阅读 / 770 字
温馨提示:
本文最后更新于 2021-11-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

需求

入手一个aar文件的修改功能。

要求
1.可以在主Module之中通过xml配置相关属性。
2.可以在build.gradle之中配置。
3.主module 不配置时,该值保持null。 不要有数据。

方案

根据需求,可以知道我们只能采用resources 配置参数来进行解决。
因为只有resources才能在xml之中初始化,也可以在build.gradle之中初始化。

尝试过在aar文件之中添加ids。
例如: < item name="ssss" type="color" />

但是主Module如果不给该参数进行赋值。就会报错。使用try来捕获,代码不美丽。(不符合要求的第三点 )

实例

在aar库之中实现:

 int i =context.getResources().getIdentifier("ssss", "color", context.getPackageName());
            if (i != 0) {
                defualColor = context.getColor(i);
            }

主Module之中

//可以直接在这个地方添加
  defaultConfig {
        resValue "color", "ssss", "#FD7D28"
    }

//如果有productFlavors

  productFlavors{
	dev{
 		resValue "color", "ssss", "#FD7D28"
	}
    }

也可以在color.xml文件之中添加
< color name="ssss">#FD7D28 </ color>

上面案例是color值,我们可以拓展String,int等参数

0

评论区