web-dev-qa-db-fra.com

Comment définir la couleur de la bordure de la case à cocher

La bordure de la case à cocher est invisible sur fond blanc.

enter image description here

J'ai joué avec différents paramètres de couleur sans succès. J'ai besoin d'une bordure noire de boîte. Oui, il existe des exemples pour créer une case à cocher personnalisée. Dans tous les exemples dessinables, la boîte normale est visible à l'intérieur de la nouvelle forme. Et la forme dessinable est étroite sans texte dans Android:text="".

enter image description here

Mais pourquoi la case à cocher ne semble pas correcte dans le xml habituel:

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/layoutBottom1"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:orientation="horizontal"
    Android:background="#FFFFFF"
    Android:gravity="center" >
    <CheckBox
        Android:id="@+id/checkBottom1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="AAAA"
        Android:visibility="visible"
        Android:textColor="#000000"
        Android:checked="true" />

</LinearLayout>

Des idées? Merci!

28
Niaz

Vous pouvez utiliser la propriété

Android:buttonTint="what you want" pour définir la couleur de la bordure de votre case à cocher.

63

Il est trop tard pour répondre mais j'aimerais partager ce qui a fonctionné pour moi. Collez sous le code. Cela changerait la couleur de la bordure CheckBox et textColor

styles.xml

<style name="MyCheckBox" parent="Theme.AppCompat.NoActionBar">
    <item name="colorControlNormal">#000</item>   <!-- normal border color change as you wish -->
    <item name="colorControlActivated">#000</item> <!-- activated color change as you wish -->
    <item name="Android:textColor">#FFFF3F3C</item> <!-- checkbox text color -->
</style>

maintenant dans votre main_activity.xml placez sous le code CheckBox

<CheckBox Android:id="@+id/check_agree"
          Android:layout_width="wrap_content"
          Android:layout_height="wrap_content"
          Android:layout_margin="10dp"
          Android:text="I agree"
          Android:theme="@style/MyCheckBox"/>   <!-- here apply your checkbox style -->

si le style ci-dessus ne fonctionne pas, remplacez le thème parent parent="Theme.AppCompat.NoActionBar" avec parent="Theme.AppCompat.Light". J'espère que cela fonctionnera.

28
IPL10

Avez-vous essayé de passer par ici , ici et ici ?
Et comme pour répondre à votre question

But why checkbox does not look okay in usual xml

C'est parce que parfois, la vue graphique Android Android n'est pas en mesure de rendre les vues personnalisées, dans ce cas, vous devez exécuter le code sur l'émulateur ou le périphérique pour le tester.

[~ # ~] mise à jour [~ # ~] Dans le cas où vous ne souhaitez pas utiliser les drawables, vous pouvez également définir la forme drawable en xml comme

 <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android" >

        <solid Android:color="#ffffff" >
        </solid>

        <stroke
            Android:width="2dp"
            Android:color="#ff0000" >
        </stroke>
<corners Android:radius="5dp" />

    <padding
        Android:bottom="4dp"
        Android:left="4dp"
        Android:right="4dp"
        Android:top="4dp" />
    </shape>
5
Antrromet