有时候公司内部会有不同应用但是有部分模块功能一样,只根据应用角色有些细节逻辑区分的场景。这时候往往采用模块化采用以应用至不同的APP。如果APP主题不一致,该如果解决。
方案:
在不同应用的config.gradle 下面根据不同应用定义不同的appId
在共用模块中,建立两套资源目录文件夹,分别存放不同主题的资源文件。
同时gradle配置中根据不同的appId加载不同的资源
Drawable示例
使用:
AttrResUtil.getAttrDrawableId(getActivity(), R.attr.skin_drawable_bg_address_selector)
或者?Attr/
Attrs.xml中定义这个attr,format是reference
在 style.xml中定义这个样式
然后在不同的资源文件夹下在分别定义这个drawable(可以是图片或者shape等等)
【Selector里面的drawable就是按不同资源目录里面存储的样式】
Color使用:
(AttrResUtil.getAttrColor(this, R.attr.skin_color_common_dark_background)
或者
background="?attr/skin_color_common_dark_background"
Attrs.xml中定义 format是color
<attr name="skin_color_common_dark_background" format="color" />
在styles.xml中定义(公用的res下面)
<item name="skin_color_common_dark_background">@color/skin_common_dark_background</item>
在不同资源目录下的colors.xml中分别定义 color
<color name="skin_common_dark_background">XXXX</color>