此为一篇使用笔记 用studio 2.3.2 添加官方switch 控件时发现其选中后的颜色不好更改
blog.youkuaiyun.com/welovesunfl… blog.youkuaiyun.com/wanghang120… 这两篇资料的实现就过于复杂(其中代码实现方式未测试)。 后在stackoverflow 上找到以下解决办法: stackoverflow.com/questions/1… 更改资源文件下的 style 颜色
<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>
复制代码
得到下面效果
今天新增一个 style 设置,是从 SwitchCompat 控件上参考过来的
<style name="MySwitch" parent="Theme.AppCompat.Light">
<!-- Active thumb color & Active track color(30% transparency) switch 打开时的拇指按钮的颜色 轨迹颜色默认为30%这个颜色 -->
<item name="colorControlActivated">@color/theme_color_green</item>
<!-- Inactive thumb color switch关闭时的拇指按钮的颜色 -->
<item name="colorSwitchThumbNormal">@color/theme_color_gray</item>
<!-- Inactive track color(30% transparency) switch关闭时的轨迹的颜色 30%这个颜色 -->
<item name="android:colorForeground">@color/colorAccent</item>
<!--使用方法: 在布局文件中给需要自定义控件中增加app:theme="@style/MySwitch"-->
</style>
复制代码
使用方法: > 在布局文件中给需要自定义控件中增加 android:theme="@style/MySwitch"
如果是 SwitchCompat 控件,则是增加 app:theme="@style/MySwitch" 复制代码