use AppCompatCheckBox and AppCompatRadioButton instead of CheckBox and RadioButton.
<android.support.v7.widget.AppCompatCheckBox android:id="@+id/cbSelected" android:layout_width="wrap_content" android:layout_height="wrap_content" android:backgroundTint="@color/colorAccent" //This to set your default button color android:checked="true"/> <android.support.v7.widget.AppCompatRadioButton android:id="@+id/rb" app:buttonTint="@color/colorAccent" //This to set your default button color android:layout_width="wrap_content" android:layout_height="wrap_content"/>
Java code: Create a ColorStateList
ColorStateList colorStateList = new ColorStateList( new int[][]{ new int[]{android.R.attr.state_enabled} //enabled }, new int[] {getResources().getColor(R.color.colorPrimary) } );
Programmatically change the color for AppCompatRadioButton or AppCompatCheckBox by calling setSupportButtonTintList.
AppCompatRadioButton radioButton = (AppCompatRadioButton) findViewById(R.id.rb); radioButton.setSupportButtonTintList(colorStateList); AppCompatCheckBox cbSelected = (AppCompatCheckBox) findViewById(R.id.cbSelected); cbSelected.setSupportButtonTintList(colorStateList);
A source