在开/关状态下使开关看起来相似

时间:2017-05-02 16:20:56

标签: android android-layout

我想让开关在开/关条件下看起来相似。圆形拇指和相同背景颜色的相同颜色。有谁知道该怎么做?

编辑:

Switch chooser = (Switch) dialog.findViewById(R.id.dswitch);

    ColorStateList buttonStates = new ColorStateList(
            new int[][]{
                    new int[]{android.R.attr.state_checked},
                    new int[]{-android.R.attr.state_enabled},
                    new int[]{}
            },
            new int[]{
                    Color.RED,
                    Color.RED,
                    Color.GREEN
            }
    );
    chooser.setButtonTintList(buttonStates);

Btw我的Switch处于自定义警告对话框中。

1 个答案:

答案 0 :(得分:0)

试试这个方法:

首先使用SwitchCompat代替Switch

<android.support.v7.widget.SwitchCompat
        android:layout_width="match_parent"
        android:id="@+id/switchInput"
        android:theme="@style/ColorSwitchStyle"
        android:layout_height="wrap_content" />

并在styles.xml文件中为此特定Switch添加样式:

<style name="Color1SwitchStyle">
        <item name="colorControlActivated">#491010</item>
        <item name="colorSwitchThumbNormal">#491010</item>
    </style>

根据您的要求更改颜色值,您就可以了。

----------------------- ****** ------------------ ---------------------

您可以尝试使用此功能:

ColorStateList buttonStates = new ColorStateList(
        new int[][]{
                new int[]{android.R.attr.state_checked},
                new int[]{-android.R.attr.state_enabled},
                new int[]{}
        },
        new int[]{
                Color.RED,
                Color.BLUE,
                Color.GREEN
        }
);
switchInput.setButtonTintList(buttonStates);

您可以为state_checked和state_enabled更改相同颜色的颜色。