Aggiornamento:
1. utilizzare invece questo
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rbtn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/primary" />
2. Quindi aggiungere questa riga nel layout principale o Alt + Enter
in Android Studio per aggiungere automaticamente
xmlns:app="http://schemas.android.com/apk/res-auto"
L'esempio minimo dovrebbe essere simile al seguente:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.AppCompatRadioButton
android:id="@+id/rbtn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:buttonTint="@color/primary" />
</LinearLayout>
3. Nel tuo programma, dovresti chiamare così.
AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);
Fondamentalmente, questo tipo di modello può essere applicato per tutti i tipi di AppCompact come AppCompatCheckBox, AppCompatButton e così via.
Vecchia risposta:
Per supportare sotto l'API 21 di Android, puoi usare AppCompatRadioButton. Quindi utilizzare il setSupportButtonTintList
metodo per cambiare il colore. Questo è il mio frammento di codice per creare un pulsante di opzione.
AppCompatRadioButton rb;
rb = new AppCompatRadioButton(mContext);
ColorStateList colorStateList = new ColorStateList(
new int[][]{
new int[]{-android.R.attr.state_checked},
new int[]{android.R.attr.state_checked}
},
new int[]{
Color.DKGRAY
, Color.rgb (242,81,112),
}
);
rb.setSupportButtonTintList(colorStateList);
Risultato testato su API 19:
Vedi il link di riferimento Android per maggiori dettagli.