Android 主题换肤的开源库

本开源库是基于我之前的一篇博文《Android主题换肤 无缝切换》,不知道原理的可以先看看。

出于易于集成的目的,我将其抽取出来,作为一个模块。提供简洁的 API,方便使用。

目前暂时没有发现兼容性问题,欢迎提供使用反馈。

更新日志:

1.v1.1.0:可以直接加载网络上的皮肤文件

效果图如下:

Demo

1. 使用方法:

  1. 添加依赖 compile 'com.solid.skin:skinlibrary:1.1.0'
  2. 让你的Application继承于SkinBaseApplication
  3. 让你的Activity继承于SkinBaseActivity,如果使用了Fragment则继承于SkinBaseFragment
  4. 在需要换肤的根布局上添加 xmlns:skin="http://schemas.android.com/android/skin" ,然后在需要换肤的View上加上 skin:enable="true"
  5. 新建一个项目模块(只包含有资源文件),其中包含的资源文件的name一定要和原项目中有换肤需求的View所使用的资源name一致。
  6. 打包皮肤文件,放入assets中的skin目录下(skin目录是自己新建的)
  7. 调用换肤
  8. 从assets/skin文件夹

  • 从网络

详细的使用,请到示例项目中查看

2. 其他一些重要的api

  1. SkinConfig.isDefaultSkin(context):判断当前皮肤是否是默认皮肤
  2. SkinManager.getInstance().restoreDefaultTheme(): 重置默认皮肤
  3. dynamicAddView:当动态创建的View也需要换肤的时候,就可以调用dynamicAddView

3. 使用注意事项:

  1. 默认不支持状态栏颜色的更改,如果需要换肤的同时也要更改状态栏颜色,请到您的Application文件中加入SkinConfig.setCanChangeStatusColor(true);,布局文件中的根布局一定要加上 android:fitsSystemWindows=”true” 状态栏的颜色值来源于colorPrimaryDark
  2. 本开源库使用的Activity是AppCompatActivity,使用的Fragment是android.support.v4.app.Fragment
  3. 有换肤需求View所使用的资源一定要是引用值,例如:@color/red,而不是#ff0000
  4. 当感觉自带的换肤属性不够用时,可以把源码下载下来自己去添加attr

致谢:

本项目是基于Android-Skin-Loader这个开源库改进而来,再次对原作者表示感谢 Android-Skin-Loader

LICENSE

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值