Comment changer la couleur de la ligne dans EditText

Je crée un EditText dans mon fichier XML de mise en page

Mais je veux changer la ligne de couleur dans EditText de Holo à (par exemple) rouge. Comment cela peut-il être fait?

entrer la description de l'image ici

C’est le meilleur outil que vous pouvez utiliser pour toutes les vues et grâce à @ Jérôme Van Der Linden .

Le générateur de couleurs Android Holo vous permet de créer facilement des composants Android tels que EdiText ou spinner avec vos propres couleurs pour votre application Android. Il générera tous les neuf éléments de correctif nécessaires, ainsi que le dessin XML et les styles associés que vous pouvez copier directement dans votre projet.

http://android-holo-colors.com/

MISE À JOUR 1

Ce domaine semble expiré mais le projet est open source, vous pouvez le trouver ici

https://github.com/jeromevdl/android-holo-colors

l’essayer

cette image mise en arrière-plan de EditText

 android:background="@drawable/textfield_activated" 

entrer la description de l'image ici


MISE À JOUR 2

Pour API 21 ou supérieure, vous pouvez utiliser android:backgroundTint

  

Mise à jour 3 Nous avons maintenant avec le support arrière AppCompatEditText

Note: Nous devons utiliser app: backgroundTint au lieu de Android: backgroundTint

  

Je n’aime pas les réponses précédentes. La meilleure solution est d’utiliser:

  

android: backgroundTint pour EditText ne fonctionne que sur API21 + . À cause de cela, nous devons utiliser la bibliothèque de support et AppCompatEditText .

Note: nous devons utiliser app: backgroundTint au lieu de Android: backgroundTint.

Vous pouvez également modifier rapidement la couleur soulignée de EditText en teintant l’arrière-plan du EditText comme suit:

  

Par programme, vous pouvez essayer:

 editText.getBackground().mutate().setColorFilter(getResources().getColor(android.R.color.holo_red_light), PorterDuff.Mode.SRC_ATOP); 

Pour changer la couleur soulignée d’Edittext:

Si vous souhaitez que l’application complète partage ce style, vous pouvez procéder comme suit.

(1) aller dans le fichier styles.xml. Votre AppTheme qui hérite du parent de Theme.AppCompat.Light.DarkActionBar (dans mon cas) sera le parent de base de tous les fichiers de style de votre application. Remplacez le nom par «AppBaseTheme». Créez un autre style sous le nom AppTheme et héritez d’AppBaseTheme que vous venez de modifier. Cela ressemblera à ceci:

   

Puis changez le “colorAccent” à la couleur que vous voulez que votre couleur de ligne EditText soit.

(2) Si vous avez d'autres dossiers de valeurs avec style.xml, cette étape est très importante. Parce que ce fichier héritera de votre fichier xml parent précédent. Par exemple, j'ai des valeurs-19 / styles.xml. Ceci est spécifiquement pour Kitkat et au-dessus. Changez son parent en AppBaseTheme et assurez-vous de vous débarrasser de «colorAccent» pour qu'il ne remplace pas la couleur du parent. Vous devez également conserver les éléments spécifiques à la version 19. Ensuite, cela ressemblera à ceci.

     

Je pense que la meilleure façon est par thème:

   

La couleur de la ligne est définie par la propriété d’arrière-plan d’ EditText . Pour le changer, vous devez changer le fichier android:background dans le fichier de mise en page.

Je dois noter que ce style est atteint en utilisant un dessin à 9 patchs. Si vous regardez dans le SDK, vous pouvez voir que le fond du EditText est cette image:

textfield_activated_holo_light.9.png

Pour le changer, vous pouvez l’ouvrir dans un programme de manipulation d’image et le colorer dans la couleur souhaitée. Enregistrez-le sous le nom bg_edit_text.9.png , puis placez-le dans votre dossier pouvant être dessiné. Maintenant, vous pouvez l’appliquer comme arrière-plan pour votre EditText comme ceci:

 android:background="@drawable/bg_edit_text" 

L’arrière-plan des widgets dépend du niveau de l’API .

ALTERNATIVE 1

Vous pouvez fournir une image personnalisée à votre EditText plan EditText en

 android:background="@drawable/custom_editText" 

Votre image devrait ressembler à ceci. Cela vous donnera l’effet désiré.

entrer la description de l'image ici

ALTERNATIVE 2

Définissez ce EditText XML sur votre EditText fond EditText .

      

Cela aura le même aspect que votre EditText sur chaque API.

pour api ci-dessous 21, vous pouvez utiliser l’atsortingbut de thème dans edittext mis en dessous du code dans le fichier de style

  

utiliser ce style dans edittext comme

  

Si vous voulez une ligne plate, vous pouvez le faire facilement avec xml. Voici l’exemple xml:

        

Remplacez la forme par un sélecteur si vous souhaitez fournir une largeur et une couleur différentes pour un edittext ciblé.

Vous pouvez changer la couleur en teintant l’arrière-plan

Utilisez cette méthode .. et modifiez-la en fonction de vos noms de vues. Ce code fonctionne très bien.

  private boolean validateMobilenumber() { if (mobilenumber.getText().toSsortingng().sortingm().isEmpty() || mobilenumber.getText().toSsortingng().length() < 10) { input_layout_mobilenumber.setErrorEnabled(true); input_layout_mobilenumber.setError(getString(R.string.err_msg_mobilenumber)); // requestFocus(mobilenumber); return false; } else { input_layout_mobilenumber.setError(null); input_layout_mobilenumber.setErrorEnabled(false); mobilenumber.setBackground(mobilenumber.getBackground().getConstantState().newDrawable()); } 

La meilleure approche consiste à utiliser un AppCompatEditText avec backgroundTint de l’espace de noms d’ app . c’est à dire

   

Lorsque nous utilisons android:backgroundTint cela ne fonctionnera que dans API21 ou plus, mais app:backgroundTint fonctionne à tous les niveaux de l’API.

Utilisez la propriété android: background pour cet edittext. Transmettez votre image de dossier à dessiner. Par exemple,

 android:background="@drawable/abc.png" 
    

** celui de faire avec vue **

Essayez de la manière suivante, il convertira la couleur de la ligne inférieure de EditText, utilisée comme propriété d’arrière-plan.

          

Vous pouvez modifier la couleur de EditText par programmation en utilisant simplement cette ligne de code: edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));

Cela peut simplement être fait en incluant cet android:theme="@style/AppTheme.AppBarOverlay tant qu’atsortingbut pour votre editText et ajoutez ce

à vos styles

C’est assez simple …

  1. Accédez à votre fichier XML et sélectionnez le champ EditText
  2. Sur le côté droit, vous pouvez voir la fenêtre “Atsortingbuts”. Sélectionnez ‘Afficher tous les atsortingbuts’
  3. Il suffit de chercher «teinte»
  4. Et append / changer le ‘backgroundTint’ à un hex de couleur désiré (par exemple # FF0000)

entrer la description de l'image ici

entrer la description de l'image ici

Continuez à coder …….. 🙂