androidandroid-radiobutton

Change the circle color of radio button


I want to change the color of the circle of RadioButton in one of my projects, but I could not understand which property to set. The background color is black, so it gets invisible. I want to set the color of the circle to white.


Solution

  • It is simpler just setting the buttonTint color (only works on API level 21 or above):

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/radio"
        android:checked="true"
        android:buttonTint="@color/your_color"/>
    

    In your values/colors.xml file, put your color, in this case a reddish one:

    <color name="your_color">#e75748</color>
    

    Result:

    Colored Android Radio Button

    If you want to do it by code (also API 21 and above):

    if(Build.VERSION.SDK_INT >= 21)
    {
        ColorStateList colorStateList = new ColorStateList(
                new int[][]
                {
                    new int[]{-android.R.attr.state_enabled}, // Disabled
                    new int[]{android.R.attr.state_enabled}   // Enabled
                },
                new int[]
                {
                    Color.BLACK, // disabled
                    Color.BLUE   // enabled
                }
            );
    
        radio.setButtonTintList(colorStateList); // set the color tint list
        radio.invalidate(); // Could not be necessary
    }