换肤神器SkinManager的使用(一)
1.在gradle文件中引入
//换肤
implementation 'skin.support:skin-support:4.0.4' // skin-support
implementation 'skin.support:skin-support-appcompat:4.0.4' // skin-support 基础控件支持
implementation 'skin.support:skin-support-design:4.0.4' // skin-support-design material design 控件支持[可选]
implementation 'skin.support:skin-support-cardview:4.0.4' // skin-support-cardview CardView 控件支持[可选]
implementation 'skin.support:skin-support-constraint-layout:4.0.4' // skin-support-constraint-layout ConstraintLayout 控件支持[可选]
2.在Application中配置一下代码
// 框架换肤日志打印
Slog.DEBUG = true
SkinCompatManager.withoutActivity(BaseApplication.mContext) // 基础控件换肤初始化
.addInflater(SkinAppCompatViewInflater()) // 基础控件换肤初始化
.addInflater(SkinMaterialViewInflater()) // material design 控件换肤初始化[可选]
.addInflater(SkinConstraintViewInflater()) // ConstraintLayout 控件换肤初始化[可选]
.addInflater(SkinCardViewInflater()) // CardView v7 控件换肤初始化[可选]
// .setSkinStatusBarColorEnable(false) // 关闭状态栏换肤,默认打开[可选]
// .setSkinWindowBackgroundEnable(false) // 关闭windowBackground换肤,默认打开[可选]
// .setSkinAllActivityEnable(false)
.loadSkin()
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
3.在需要换肤功能的activity中重写getDelegate方法
override fun getDelegate(): AppCompatDelegate {
return SkinAppCompatDelegateImpl.get(this, this)
}
4.调用换肤方法切换皮肤(这里以加载后缀的方式进行换肤)
SkinCompatManager.getInstance().loadSkin(
"cn",//加载的皮肤后缀标识
null,
SkinCompatManager.SKIN_LOADER_STRATEGY_BUILD_IN
)//切换皮肤名为night的皮肤
5.恢复原有皮肤
SkinCompatManager.getInstance().restoreDefaultTheme()//恢复默认皮肤
6.资源换肤配置
(1)在drawable文件中配置所需资源,这里以_cn后缀来区分
(2)在mipmap中配置图片资源
(3)在color文件中配置颜色
以上就是skinManager的基本使用啦!