我在 ICS 应用程序中使用带有 holo.light 主题的标准 Switch 控件。
我想将切换按钮的突出显示或开启状态颜色从标准的浅蓝色更改为绿色。
这应该很容易,但我似乎无法弄清楚如何去做。
到目前为止,最好使用 AppCompat.v7 库中的 SwitchCompat。然后,您可以使用简单的样式来更改组件的颜色。
values/themes.xml: <style name="Theme.MyTheme" parent="Theme.AppCompat.Light"> <!-- colorPrimary is used for the default action bar background --> <item name="colorPrimary">@color/my_awesome_color</item> <!-- colorPrimaryDark is used for the status bar --> <item name="colorPrimaryDark">@color/my_awesome_darker_color</item> <!-- colorAccent is used as the default value for colorControlActivated, which is used to tint widgets --> <item name="colorAccent">@color/accent</item> <!-- You can also set colorControlNormal, colorControlActivated colorControlHighlight, and colorSwitchThumbNormal. --> </style>
参考:Android 开发者博客
编辑 :
正确应用它的方式是通过android:theme="@style/Theme.MyTheme" ,这也可以应用于父样式,例如 EditTexts、RadioButtons、Switches、CheckBoxes 和 ProgressBars:
android:theme="@style/Theme.MyTheme"
<style name="My.Widget.ProgressBar" parent="Widget.AppCompat.ProgressBar"> <style name="My.Widget.Checkbox" parent="Widget.AppCompat.CompoundButton.CheckBox">