如何在android中更改切换按钮颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在android中更改切换按钮颜色相关的知识,希望对你有一定的参考价值。

我有这个Switchbutton

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

当从默认选项到我的颜色时,如何更改按钮的颜色?

更新:

我试过这个解决方案:Change "on" color of a Switch

但是当我从Switch更改为SwitchCompat时,我看不到任何Switch Buttons

仅供参考我使用<style name="AppTheme" parent="Theme.Leanback">

答案

我通过编程方式更改开关按钮的颜色来解决问题

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);
    }
}

以上是关于如何在android中更改切换按钮颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 Android 中各个片段的 ActionBar 颜色?

在 Android Studio 中按住时如何更改按钮的背景颜色?

如何从片段更改 Tablayout 的背景颜色?

如何在android中更改背景时保持按钮颜色相同

如何在 bootstrap-vue 切换按钮中更改背景颜色

Android如何使用工具栏中的按钮切换以使用片段打开/关闭导航抽屉