46 votes

Comment changer la couleur de la bordure (non focalisée) d'un EditText ?

J'ai changé la couleur d'arrière-plan du EditText en transperant. Maintenant, le EditText semble invisible lorsqu'il n'est pas focalisé. Alors, comment puis-je changer la couleur de bordure non focalisée d'EditText ?

Quel est l'attribut XML pour cela ?

94voto

Vikram Points 5223

Créez un fichier XML avec ce qui suit dans le dessin (disons backwithborder.xml) :

 <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#00000000" />
    <stroke android:width="1dip" android:color="#ffffff" />
</shape>

et pour l'attribut utilisateur EditText android:background="@drawable/backwithborder"

7voto

jordiz Points 18

Il est si tard pour la réponse, mais j'ai écrit ce code pour les nouveaux développeurs :

 <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
    <layer-list>
        <item>
            <shape android:shape="rectangle">
                <stroke android:width="2dp" android:color="@color/components_colorPrimaryDark" />
                <solid android:color="@color/components_white" />
            </shape>
        </item>

        <item android:bottom="2dp">
            <shape android:shape="rectangle">
                <solid android:color="@color/components_white" />
            </shape>
        </item>
    </layer-list>
</item>
<item android:state_focused="false">
    <layer-list>
        <item>
            <shape android:shape="rectangle">
                <stroke android:width="1dp" android:color="@color/components_colorAccent" />
                <solid android:color="@color/components_white" />
            </shape>
        </item>

        <item android:bottom="1dp">
            <shape android:shape="rectangle">
                <solid android:color="@color/components_white" />
            </shape>
        </item>
    </layer-list>
</item>

5voto

Sravani Points 109

Le système d'exploitation Android lui-même ajoute une bordure à EditText lorsque l'utilisateur se concentre dessus. La couleur dépend de la version du système d'exploitation. Parfois, nous pouvons vouloir nous débarrasser de la bordure de mise au point par défaut et il existe un moyen de le faire.

Nous pouvons conserver la couleur d'arrière-plan transparente pour supprimer la bordure EditText sur le focus.

      <EditText 
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:background="#00000000"
      />

2voto

mayuri Points 1

Vous pouvez créer une disposition linéaire avec une couleur d'arrière-plan de la couleur que vous souhaitez que la bordure soit. Ensuite, placez le texte d'édition à l'intérieur de ce Linearlayout et donnez une couleur d'arrière-plan. Ex : si la bordure est grise alors le fond pour Linearview est gris. et modifiez l'arrière-plan du texte en noir.

pour la largeur de la bordure, vous pouvez donner padding = "1dp" pour border_width = "1dp" .

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