web-dev-qa-db-fra.com

Android: Comment changer la taille du RadioButton

J'ai beaucoup de RadioButton dans mon application. Les RadioButtons sont trop gros pour moi. Existe-t-il un moyen de les réduire?

29
TianDong

Impossible à faire, le bouton radio est un composant de contrôle intégré et en tant que tel, sa taille est fixe.

15
arclight

Une solution rapide et hacky consiste à réduire le bouton:

<RadioButton
  Android:scaleX="0.5"
  Android:scaleY="0.5" />

Cela fonctionne très bien pour aller plus petit.

Pour agrandir, cela a tendance à provoquer un écrêtage de la vue du conteneur, vous devrez donc probablement coder en dur la hauteur/largeur du RadioGroup pour s'adapter aux boutons mis à l'échelle. Le bouton pouvant être dessiné peut également être visiblement pixellisé au fur et à mesure que vous allez, donc ce n'est pas vraiment génial si vous voulez quelque chose de 3 fois plus grand ...

42
user901309

Cela peut être fait mais n'est pas aussi simple que de définir Layout_Width et Layout_height comme avec EditTexts, Buttons etc. Pour modifier la taille/l'apparence d'une vue comme une case à cocher/bouton radio utilise les propriétés "Arrière-plan" et "Bouton" pour spécifier vos propres dessins.

Ceci est une page plus ancienne, et les emplacements sont différents maintenant, mais cela vous donnera une idée: http://www.anddev.org/tutorial_change_look_of_checkbox-t4553.html

15
IM.

vous pouvez utiliser les propriétés scalex et scaley, puis utiliser translationX et translationY pour les placer dans les fenêtres des boutons radio.

<RadioButton
            Android:id="@+id/rbtnfkilo"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:scaleX="1.4"
            Android:scaleY="1.4"
            Android:text="Kilogram"
            Android:textColor="#fff"
            Android:textSize="18sp"
            Android:translationX="24dp" />
3
Colone1

J'ai remplacé RadioButton par ToggleButton et appliqué le même style. J'ai remplacé le fond et le bouton.

    <ToggleButton
        Android:id="@+id/btnToggle1"
        Android:layout_width="match_parent"
        Android:layout_height="30dp"
        Android:layout_weight="1"
        Android:checked="true"
        style="@style/ToggleButtonStyle"
        Android:button="@null"
        Android:textOn="@string/btnTitle"
        Android:textOff="@string/btnTitle"/>

et style:

<style name="ToggleButtonStyle">
    <item name="Android:background">@drawable/background_radiobutton</item>
    <item name="Android:textColor">@color/selector_text_radiobutton</item>
    <item name="Android:textAppearance">@null</item>
</style>

Fonctionne pour moi - a la même apparence, mais avec une hauteur personnalisée.

Si votre RadioButton est dans le RadioGroup, vous devrez personnaliser l'écouteur, vérifiez Android: Comment obtenir un radiogroupe avec des boutons à bascule?

0
Andrey Aleev