如何在android中更改开关按钮的颜色

如何在android中更改开关按钮的颜色,android,button,layout,colors,switch-statement,Android,Button,Layout,Colors,Switch Statement,我有这个开关按钮 <Switch android:id="@+id/switch" android:layout_width="300dp" android:layout_height="wrap_content" android:text="some text" android:textColor="@color/foreground" /> 当按钮从默认选中为我的颜色时,如何更改按钮的颜色 更新: 我尝试过这个解决方案: 但当我从Sw

我有这个开关按钮

<Switch
    android:id="@+id/switch"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:text="some text"
    android:textColor="@color/foreground" />

当按钮从默认选中为我的颜色时,如何更改按钮的颜色

更新:

我尝试过这个解决方案:

但当我从Switch切换到SwitchCompat时,我再也看不到任何切换按钮了


仅供参考。

我通过编程更改开关按钮的颜色,解决了此问题

int myColor = getResources().getColor(R.color.myColor);
int defaultColor = getResources().getColor(R.color.defaultColor);

public void changeSwitch(View view) {
    boolean checked = ((Switch) view).isChecked();
    if (checked) {
        ((Switch) view).getThumbDrawable().setColorFilter(myColor,
                PorterDuff.Mode.MULTIPLY);
        ((Switch) view).getTrackDrawable().setColorFilter(myColor,
                PorterDuff.Mode.MULTIPLY);
    } else {
        ((Switch) view).getThumbDrawable().setColorFilter(defaultColor,
                PorterDuff.Mode.MULTIPLY);
        ((Switch) view).getTrackDrawable().setColorFilter(defaultColor,
                PorterDuff.Mode.MULTIPLY);
    }
}
试试看。可能是重复的