效果
前言
最近做的一个音乐类开源项目,有不少用户反映,说界面主题肤色太单一,希望能够提供多种颜色的主题供用户选择,刚好这段时间事情不多,就琢磨着为项目添加一个切换主题的功能。
在网上查阅了大量的资料、参考了各个App的主题切换效果,随后做出了这个功能,项目界面立马提高了一个档次,期间遇到了不少的坑,效率不一定很高,但还是有参考价值的,特此记录一下完成的过程。
我打算完成的主题切换包括白天模式(包括各种颜色的主题)、夜间模式。这里白天模式的各主题之间是比较相似的,主要换了对应的几种属性颜色值,而他们和夜间模式之间的差别就稍微大一些,改变的不仅仅是公共的几个颜色值,还有所有的背景色。
开始
Android Support Library 23.2提供了一个主题Theme.AppCompat.DayNight.它的出现使我们实现夜间模式变得更加容易,当然使用它之前需要先添加一下相应的依赖库
compile 'com.android.support:appcompat-v7:24.2.1'
切换主题之前,我们需要先在res–>styles.xml中添加主题。
<style name="BiLiPinkTheme" parent="AppTheme">
<item name="colorPrimary">@color/biliPink</item>
<item name="colorPrimaryDark">@color/biliPink</item>
<item name="colorAccent">@color/biliPink</item>
<item name="image_tint">@color/biliPink</item>
<item name="press_color"&g