同模块设置不同应用主题方案

有时候公司内部会有不同应用但是有部分模块功能一样,只根据应用角色有些细节逻辑区分的场景。这时候往往采用模块化采用以应用至不同的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>

猜你喜欢

转载自blog.csdn.net/u013773608/article/details/129377811