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 en (par exemple) rouge. Comment cela peut-il être fait?
C'est le meilleur outil que vous pouvez utiliser pour toutes les vues et son GRATUIT 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 EditText
ou spinner avec vos propres couleurs pour votre application Android. Il générera tous les neuf actifs de correctifs nécessaires, ainsi que les styles et les dessins XML associés que vous pouvez copier directement dans votre projet.
MISE À JOUR 1
Ce domaine semble expiré mais le projet est une source ouverte que vous pouvez trouver ici
essayez-le
cette image mise en arrière-plan de EditText
android:background="@drawable/textfield_activated"
MISE À JOUR 2
Pour API 21 ou supérieur, vous pouvez utiliser android:backgroundTint
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Underline color change"
android:backgroundTint="@android:color/holo_red_light" />
Update 3
Maintenant, nous avons avec le support arrièreAppCompatEditText
Remarque: Nous devons utiliser app: backgroundTint au lieu d' Android: backgroundTint
<android.support.v7.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Underline color change"
app:backgroundTint="@color/blue_gray_light" />
Je n'aime pas les réponses précédentes. La meilleure solution consiste à utiliser:
android:backgroundTint
pour lesEditText
travaux uniquement sur API21 + . Pour cette raison, nous devons utiliser la bibliothèque de support etAppCompatEditText
.Remarque: nous devons utiliser
app:backgroundTint
au lieu deandroid:backgroundTint
Version AndroidX
la source
Vous pouvez également modifier rapidement la couleur de soulignement de l'EditText en teintant l'arrière-plan de l'EditText comme suit:
la source
pour l' API inférieure à 21, vous pouvez utiliser l'attribut de thème dans le
EditText
code ci-dessous dans le fichier de styleutiliser ce style en
EditText
tant quela source
Par programme, vous pouvez essayer:
la source
je pense que le meilleur moyen est par thème:
la source
Pour modifier la couleur de soulignement d'Edittext:
Si vous souhaitez que l'application entière partage ce style, vous pouvez procéder de la manière suivante.
(1) allez 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 dans votre application. Changez le nom de celui-ci en «AppBaseTheme». Créez un autre style juste en dessous qui porte le nom d'AppTheme et hérite d'AppBaseTheme que vous venez de modifier. Il ressemblera à ceci:
Puis changez le "colorAccent" en quelle que soit 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 précédent fichier xml parent. Par exemple, j'ai values-19 / styles.xml. Ceci est spécifiquement pour Kitkat et supérieur. Changez son parent en AppBaseTheme et assurez-vous de vous débarrasser de «colorAccent» afin 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.
la source
C'est assez simple (Requis: API 21 minimum) ...
Continuez à coder ........ :)
la source
La couleur de la ligne est définie par
EditText
la propriété background de. Pour le changer, vous devez changer leandroid:background
dans le fichier de mise en page.Je dois noter que ce style est obtenu en utilisant un dessinable à 9 patchs. Si vous regardez dans le SDK, vous pouvez voir que l'arrière-plan du
EditText
est cette image:Pour le changer, vous pouvez l'ouvrir dans un programme de manipulation d'image et le colorier dans la couleur souhaitée. Enregistrez-le sous
bg_edit_text.9.png
, puis placez-le dans votre dossier dessinable. Maintenant, vous pouvez l'appliquer comme arrière-plan à votreEditText
goût:la source
Vous pouvez changer la couleur de EditText par programme en utilisant simplement cette ligne de code:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
la source
L'arrière-plan des widgets dépend du niveau de l'API .
ALTERNATIVE 1
Vous pouvez fournir une image personnalisée à votre
EditText
arrière - plan enVotre image devrait ressembler à ceci. Il vous donnera l'effet souhaité.
ALTERNATIVE 2
Définissez ce xml sur votre
EditText
attribut d'arrière - plan.Cela aura le même aspect et la même sensation que votre
EditText
sur chaque API.la source
Vous pouvez changer la couleur en teintant l'arrière-plan
<EditText android:backgroundTint="@color/red"/>
la source
drawable / bg_edittext.xml
Définir sur EditText
la source
Utilisez cette méthode .. et modifiez-la selon les noms de vos vues. Ce code fonctionne très bien.
la source
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 l'edittext focalisé.
la source
La meilleure approche consiste à utiliser un attribut
AppCompatEditText
withbackgroundTint
d'app
espace de noms. c'est à direlorsque nous l'utilisons,
android:backgroundTint
cela ne fonctionne que dans API21 ou plus, maisapp:backgroundTint
fonctionne à tous les niveaux d'API.la source
Utilisez android: propriété d'arrière-plan pour cet edittext. Passez-y votre image de dossier dessinable. Par exemple,
la source
** c'est à faire avec vue **
la source
Essayez la méthode suivante, elle convertira la couleur de la ligne du bas de EditText, lorsqu'elle est utilisée comme propriété d'arrière-plan.
la source
Cela peut simplement être fait en incluant cet
android:theme="@style/AppTheme.AppBarOverlay
attribut dans votre editText et en l'ajoutant<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
à vos stylesla source