前不久碰到了需要给软件更换主题的问题,研究了一段时间后可以基本实现功能了,在这里拿出来分享下方法,如有不足欢迎指正。
要想实现主题切换,我们得自定义一些主题的属性,自定义属性的attrs.xml新建在res/values下面。在这里我定义了软件背景,对话框图案和按钮的样式。
resources>
有了自定义主题属性后,就可以编写自己的主题了,同样在values文件夹里,找到styles.xml,可以看到里面有一个默认的系统主题,不用管它,在下面写自己主题的各种属性。注意我们的自定义主题也需要继承系统主题,也就是style的parent属性。
style>
"dialog_back">@drawable/spring_dialog
"dialog_button1">@drawable/spring_button1
"dialog_button2">@drawable/spring_button2
style>
"dialog_back">@drawable/summer_dialog
"dialog_button1">@drawable/summer_button1
"dialog_button2">@drawable/summer_button2
style>
"dialog_back">@drawable/autumn_dialog
"dialog_bu