102 votes

Est-il possible de changer le bouton radio icône dans un android groupe de boutons radio

Je suis désireux de permettre à l'utilisateur de mon application android la possibilité de régler certains paramètres. Le bouton radio est idéal pour cette situation. Cependant, je n'aime pas les boutons radio sont rendus.

Est-il possible de changer le bouton radio icône? Par exemple, il est possible de créer une mise en page personnalisée pour chaque ligne et dans cette mise en page de référence de mon propre icône et de modifier la police et coll.

171voto

Konstantin Burov Points 34011

Oui c'est possible, vous devez définir votre propre style pour les boutons radio, à res/values/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="android:Theme">
   <item name="android:radioButtonStyle">@style/RadioButton</item>
</style>
<style name="RadioButton" parent="@android:style/Widget.CompoundButton.RadioButton">
   <item name="android:button">@drawable/radio</item>
</style>
</resources>

"radio" ici doit être avec un état de drawable, radio.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:state_window_focused="false"
        android:drawable="@drawable/radio_hover" />
    <item android:state_checked="false" android:state_window_focused="false"
        android:drawable="@drawable/radio_normal" />
    <item android:state_checked="true" android:state_pressed="true"
        android:drawable="@drawable/radio_active" />
    <item android:state_checked="false" android:state_pressed="true"
        android:drawable="@drawable/radio_active" />
    <item android:state_checked="true" android:state_focused="true"
        android:drawable="@drawable/radio_hover" />
    <item android:state_checked="false" android:state_focused="true"
        android:drawable="@drawable/radio_normal_off" />
    <item android:state_checked="false" android:drawable="@drawable/radio_normal" />
    <item android:state_checked="true" android:drawable="@drawable/radio_hover" />
    </selector>

Ensuite, il suffit d'appliquer le thème Personnalisé, soit à l'ensemble de l'application ou à des activités de votre choix.

Pour plus d'informations sur les thèmes et les styles de regarder http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/ qui est un bon guide.

32voto

crony_cd Points 1655

Vous pouvez mettre des images personnalisées dans radiobutton comme bouton normal. pour créer un fichier XML dans le dossier drawable e.g

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/sub_screens_aus_hl" 
    android:state_pressed="true"/>  
<item android:drawable="@drawable/sub_screens_aus" 
    android:state_checked="true"/>  
<item android:drawable="@drawable/sub_screens_aus" 
    android:state_focused="true" />
<item android:drawable="@drawable/sub_screens_aus_dis" />  
</selector> 

Ici, vous pouvez utiliser jusqu'à 3 images différentes pour radiobutton

et utilisez ce fichier pour RadioButton comme:

android:button="@drawable/aus"
android:layout_height="120dp"
android:layout_width="wrap_content" 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X