Je souhaite autoriser l'utilisateur de mon application =Android) à définir certains paramètres. Le bouton radio est idéal pour cette situation. Cependant, je n'aime pas que les boutons radio soient affichés.
Est-il possible de changer l'icône du bouton radio? Par exemple, est-il possible de créer une mise en page personnalisée pour chaque ligne et dans cette mise en page, faire référence à ma propre icône et modifier la police, etc.
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' devrait ici être un fichier stateful 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, appliquez simplement le thème Personnalisé à l’ensemble de l’application ou aux activités de votre choix.
Pour plus d'informations sur les thèmes et les styles, consultez http://brainflush.wordpress.com/2009/03/15/understanding-Android-themes-and-styles/ c'est un bon guide.
Vous pouvez mettre une image personnalisée en radiobutton comme un bouton normal. pour cela, créez un fichier XML dans un dossier pouvant être dessiné, par exemple
<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 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"
Le moyen le plus simple de ne changer que le bouton radio est simplement de sélectionner le sélecteur
<RadioButton
...
Android:button="@null"
Android:checked="false"
Android:drawableRight="@drawable/radio_button_selector" />
Et le sélecteur est:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:drawable="@drawable/ic_checkbox_checked" Android:state_checked="true" />
<item Android:drawable="@drawable/ic_checkbox_unchecked" Android:state_checked="false" /></selector>
C'est tout
oui .... `du XML
Android:button="@drawable/yourdrawable"
et de Java
myRadioButton.setButtonDrawable(resourceId or Drawable);
`
Voici probablement une approche rapide,
Avec deux icônes montrées ci-dessus, vous aurez un RadioGroup
quelque chose comme ceci
RadioGroup
en horizontalRadioButton
, essayez de donner l'icône pour Button
sous CompoundButton
,