我正在尝试更改Android中交换机的颜色。我意识到我需要新的9件。我走到http://android-holo-colors.com/并选择了我的颜色并选择了(Switch Jelly Bean)。要使用Switch Jelly Bean,我必须使用:https://github.com/BoD/android-switch-backport。要将它导入我的项目,我必须添加:
<item name="switchStyle">@style/Widget.Holo.CompoundButton.Switch</item>
到我的样式,然后在xml中我必须像这样使用开关:
<org.jraf.android.backport.switchwidget.Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
现在切换的一切正常。接下来,我从android全息颜色生成器输出所有内容并将其放入正确的文件中:
然后我添加到我的xml:
<org.jraf.android.backport.switchwidget.Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:thumb="@drawable/apptheme_switch_inner_holo_light"
android:track="@drawable/apptheme_switch_track_holo_light" />
但它仍然是原始的蓝色。我相信我正在做的一切正确。一切都编译(xml,java)。注意:我也在我的java中导入org.jraf.android.backport.switchwidget.Switch
。有什么想法吗?
答案 0 :(得分:21)
根据this,(BoD复制粘贴直接回答):
您不能使用android:thumb
和android:track
,而应使用app:thumb
和app:track
并且必须将以下内容添加到xml文档的根目录中:
xmlns:app="http://schemas.android.com/apk/res-auto"
答案 1 :(得分:4)
Android Lollipop及以上版本中的最简单方法,
<style name="AppTheme" parent="MaterialTheme.Light">
...
<item name="android:colorControlActivated">@color/color_switch</item>
</style>
答案 2 :(得分:2)
更改开关的颜色可以使用两个图像
现在将此文件放在可绘制文件夹
中<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue_checked" android:state_checked="true"/>
<item android:drawable="@drawable/blue_unchecked" android:state_checked="false"/>
</selector>
并在布局XML文件中使用它如下
<CheckBox
android:id="@+id/user_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:button="@drawable/notif_checkbox_selector"
/>
答案 3 :(得分:2)
试试这个:
switch_thumb.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/switch_thumb_holo_light" />
<item android:state_pressed="true" android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item android:state_checked="true" android:drawable="@drawable/switch_thumb_activated_holo_light" />
<item android:drawable="@drawable/switch_thumb_holo_light" />
</selector>
在交换机的布局中:
android:thumb="@drawable/switch_thumb"
答案 4 :(得分:1)
可能需要放
style="@style/switchStyle"
在您的XML中