我是一个只会搬运代码不会生产代码的搬运工(以下内容都是github开源项目使用心得)
其他我也不多说先开效果图:
效果大概就这样子
下面我讲一下这个改咋用
demo地址:https://github.com/ximsfei/Android-skin-support
第一步: 导包
compile 'skin.support:skin-support:1.2.2' compile 'skin.support:skin-support-design:1.2.1'第二步: 在Application的onCreate中初始化
SkinMaterialManager.init(this); SkinCompatManager.init(this).loadSkin();第三步: 继承自SkinCompatActivity
public class BaseActivity extends SkinCompatActivity {}
第四步:切换主题
SkinCompatManager.getInstance().loadSkin("skin-violet.skin", new SkinCompatManager.SkinLoaderListener() { @Override public void onStart() { } @Override public void onSuccess() { Toast.makeText(ThemeActivity.this, "切换主题成功", Toast.LENGTH_SHORT).show(); } @Override public void onFailed(String s) { } });
第五步:返回原有主题
SkinCompatManager.getInstance().restoreDefaultTheme();
上面的这些就是这个开源项目的使用过程,用起来非常简单但是也有需要注意的几点
1.上面出现的 skin-violet.skin文件是哪里来,你创建一个module那你想替换的默认主题的文件放在里面记得名字要对应module样子如下图
做到这一步后再将这个module打包成apk文件,再将文件名改成你想要的就想了(注意:后缀名一定要是.skin)
2.这个项目有点小问题 就是在切换主题的瞬间不能finish Activity 和弹dailog 不然会闪退并且日志都看不到,主要注意这点这个项目还是很好用的。