美文网首页
酷市场主题风格切换的简单实现

酷市场主题风格切换的简单实现

作者: 莫离境 | 来源:发表于2017-04-18 14:13 被阅读66次

好久没写博客了,还是不能停下,不然不常用的容易忘记,所以准备继续记录自己所学。
现在许多应用都支持更换主题,比如扣扣,网易云音乐。我所知道的流行换肤框架有Android-Skin-Loader和Android-skin-support还有Colorful。大家有兴趣在项目中添加换肤功能的可以去研究学习下这些框架。
不过从酷市场的开源相关中并未看到换肤相关的框架,当然了,严格上这个不能称之为换肤,酷市场里叫做主题风格。
其实我是在很久之前看过一篇文章,是讲夜间模式的简单实现。当时只是随意看了下源码,知道是Android支持包引入的新能力就放下了,现在做下记录一面忘记。
先看一下酷市场的界面:

AppCompatDelegate是一个委托代表,它将AppCompatActivity的特性提供给Activity。
我们来看AppCompatActivity源码,可以看到在oncreate时进行创建实例:


然后我们就可以通过 AppCompatDelegate来切换夜间模式和toolbar颜色。

先看我们的界面以及效果吧:



首先是 夜间模式的切换:

新建values-night:

我们这里只以主题颜色为例,新建colors资源文件:


在代码中实现模式切换:


而单纯的toolbar颜色的更改比较简单,直接给toolbar设置背景颜色即可,在实际效果中酷市场有过度效果,实现起来也很简加个动画即可:

ObjectAnimator objectAnimator = ObjectAnimator.ofInt(toolbar, "backgroundColor", SharePrefs.getInt(MainActivity.this, "toolBarColor", bean.getColorRes()), bean.getColorRes());
objectAnimator.setDuration(500);
objectAnimator.setEvaluator(new ArgbEvaluator());objectAnimator.start();

github地址:https://github.com/VongVia1209/DayAndNight

相关文章

网友评论

      本文标题:酷市场主题风格切换的简单实现

      本文链接:https://www.haomeiwen.com/subject/wtbfyttx.html