Android 改变开关材料的颜色

Android 改变开关材料的颜色,android,kotlin,android-styles,material-components-android,android-switch,Android,Kotlin,Android Styles,Material Components Android,Android Switch,在我的应用程序中,第一个活动是一个选择器,我可以在3个按钮之间进行选择:红色、绿色和黄色。当我选择一个按钮时,将显示一个带有SwitchMaterial的新活动。现在我想更改colorControlActivated,以便如果我选择了红色按钮,则开关颜色为红色,绿色按钮为绿色,依此类推。我该怎么做 <com.google.android.material.switchmaterial.SwitchMaterial android:id=&qu

在我的应用程序中,第一个活动是一个选择器,我可以在3个按钮之间进行选择:红色、绿色和黄色。当我选择一个按钮时,将显示一个带有SwitchMaterial的新活动。现在我想更改colorControlActivated,以便如果我选择了红色按钮,则开关颜色为红色,绿色按钮为绿色,依此类推。我该怎么做

<com.google.android.material.switchmaterial.SwitchMaterial
                        android:id="@+id/profile_setting_switch1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginEnd="20dp"
                        android:theme="@style/SwitchTecnoTheme"
                        app:layout_constraintBottom_toBottomOf="@id/profile_setting_1"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="@id/profile_setting_1" />


@颜色/技术品牌颜色

您可以定义3个不同的选择器,并使用如下内容:

    switch.isUseMaterialThemeColors = false
    switch.thumbTintList = ContextCompat.getColorStateList(this,R.color.thumb_selector)
    switch.trackTintList = ContextCompat.getColorStateList(this, R.color.track_selector)
其中
拇指选择器

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
  <item android:state_checked="true" android:color="@color/switchThumbActive" />
  <item android:color="@color/switchThumbkNormal" />
</selector> 
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
  <item android:state_checked="true" android:color="@color/switchTrackActive" />
  <item android:color="@color/switchTrackNormal" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_enabled="false" android:color="@color/switchTrackDisable"/>
  <item android:state_checked="true" android:color="@color/switchTrackActive" />
  <item android:color="@color/switchTrackNormal" />
</selector>