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

来源:互联网 发布:wish产品怎么优化 编辑:程序博客网 时间:2024/05/16 14:22

好久没写博客了,还是不能停下,不然不常用的容易忘记,所以准备继续记录自己所学。

现在许多应用都支持更换主题,比如扣扣,网易云音乐。我所知道的流行换肤框架有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

0 0
原创粉丝点击