android application - Changer la couleur du cercle du bouton radio- Android




8 Answers

Ce site est vraiment bon pour personnaliser les composants Android en général: http://android-holo-colors.com/

Choisissez simplement le bouton radio, faites la couleur blanche, téléchargez et profitez!

Plus d'information

Si après cela, vous ne pouvez pas voir le changement demandé. Ensuite, vous devez vous assurer que Quel est votre thème qui est appliqué dans AndroidManifest.xml .

Voyez-vous aussi que vous avez appliqué n'importe quel style à l' activity ?

juste effacer ces choses et cela fonctionnera 100% correct.

version wiki

Je veux changer la couleur du cercle de bouton radio, je ne pouvais pas comprendre quelle propriété à définir. La couleur de fond que je suis noir est donc il devient invisible.Je veux définir la couleur du cercle au blanc.




Mise à jour: 1. utiliser celui-ci à la place

   <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. Ajoutez ensuite cette ligne dans la mise en page parente ou Alt + Enter dans Android Studio pour ajouter automatiquement xmlns:app="http://schemas.android.com/apk/res-auto"

L'exemple minimum devrait ressembler à ceci:

<?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. Dans votre programme, devrait appeler comme ça. AppCompatRadioButton radioButton = (AppCompatRadioButton) view.findViewById(R.id.rbtn_test);

Fondamentalement, ce type de modèle peut être appliqué à tous les types AppCompact tels que AppCompatCheckBox, AppCompatButton et ainsi de suite.

Ancienne réponse:

Afin de soutenir ci-dessous API Android 21, vous pouvez utiliser AppCompatRadioButton. Utilisez setSupportButtonTintList méthode setSupportButtonTintList pour changer la couleur. Ceci est mon extrait de code pour créer un bouton radio.

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

Résultat testé à l'API 19:

Voir le lien de référence Android pour plus de détails.




Travailler sur API pré 21 ainsi que post 21. Dans votre styles.xml put:

<!-- custom style -->
<style name="radionbutton"
       parent="Base.Widget.AppCompat.CompoundButton.RadioButton">
    <item name="android:button">@drawable/radiobutton_drawable</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">true</item>
</style>

Votre radio button en XML devrait ressembler à:

<RadioButton
    android:layout_width="wrap_content"
    style="@style/radionbutton"
    android:checked="false"
    android:layout_height="wrap_content"
    />

Maintenant tout ce que vous devez faire est de faire un radiobutton_drawable.xml dans votre drawable folder . Voici ce que vous devez y mettre:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/radio_unchecked" android:state_checked="false" android:state_focused="true"/>
  <item android:drawable="@drawable/radio_unchecked" android:state_checked="false" android:state_focused="false"/>
  <item android:drawable="@drawable/radio_checked" android:state_checked="true" android:state_focused="true"/>
  <item android:drawable="@drawable/radio_checked" android:state_checked="true" android:state_focused="false"/>
</selector>

Votre radio_unchecked.xml :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="oval">
  <stroke android:width="1dp" android:color="@color/colorAccent"/>
  <size android:width="30dp" android:height="30dp"/>
</shape>

Votre radio_checked.xml :

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <shape android:shape="oval">
      <stroke android:width="1dp" android:color="@color/colorAccent"/>
      <size android:width="30dp" android:height="30dp"/>
    </shape>
  </item>
  <item android:top="5dp" android:bottom="5dp" android:left="5dp" android:right="5dp">
    <shape android:shape="oval">
      <solid android:width="1dp" android:color="@color/colorAccent"/>
      <size android:width="10dp" android:height="10dp"/>
    </shape>
  </item>
</layer-list>

Remplacez simplement @color/colorAccent par la couleur de votre choix.




La question est ancienne mais je pense que ma réponse aidera les gens. Vous pouvez changer la couleur de l'état non coché et coché du bouton radio en utilisant le style en XML.

<RadioButton
    android:id="@+id/rb"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:theme="@style/RadioButtonStyle" />

En style.xml

<style name="RadioButtonStyle" parent="Theme.AppCompat.Light">
        <item name="colorAccent">@android:color/white</item>
        <item name="android:textColorSecondary">@android:color/white</item>
</style>

Vous pouvez définir les couleurs souhaitées dans ce style.




Il y a un attribut xml pour cela:

android:buttonTint="yourcolor"



Je l'ai fait court comme ça (Travailler sur API pré 21 ainsi que post 21)

Votre bouton radio en XML devrait ressembler à ceci

  <RadioButton android:id="@+id/radioid"                    
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"                 
                android:button="@drawable/radiodraw" />

dans radiodraw.xml

  <?xml version="1.0" encoding="utf-8"?>
  <selector xmlns:android="http://schemas.android.com/apk/res/android">    
      <item android:state_checked="false" >
          <shape  android:shape="oval" >
              <stroke android:width="1dp" android:color="#000"/>
              <size android:width="30dp" android:height="30dp"/>
              <solid android:color="@android:color/transparent"/>
          </shape>
      </item>
      <item android:state_checked="true">
          <layer-list>
              <item>
                  <shape android:shape="oval">
                      <stroke android:width="1dp" android:color="#000"/>
                      <size android:width="30dp" android:height="30dp"/>
                      <solid android:color="@android:color/transparent"/>
                  </shape>
              </item>
              <item android:top="5dp" android:bottom="5dp" android:left="5dp" android:right="5dp">
                  <shape android:shape="oval">
                      <solid android:width="1dp" android:color="#000"/>
                      <size android:width="10dp" android:height="10dp"/>
                  </shape>
              </item>
          </layer-list>
      </item>
  </selector>

doit ajouter de la couleur transparente pour dessiner le statut non coché, sinon il dessine un ovale noir solide.




  1. Déclarez le style personnalisé dans votre fichier styles.xml.

    <style name="MyRadioButton" parent="Theme.AppCompat.Light">  
      <item name="colorControlNormal">@color/indigo</item>
      <item name="colorControlActivated">@color/pink</item>
    </style>  
    
  2. Appliquez ce style à votre RadioButton via l'attribut android: theme.

    <RadioButton  
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="Radio Button"
        android:theme="@style/MyRadioButton"/>
    

    uniquement si votre activité étend AppCompatActivity




Le moyen le plus simple est de changer la couleur de la values->colours.xml dans les values->colours.xml
mais sachez que cela va aussi changer d'autres choses comme modifier la couleur du curseur du texte, etc.

< color name="colorAccent">#75aeff</color >




Related

android

Tags

android