Cómo cambiar el color de la línea en EditText

Estoy creando un EditText en mi archivo xml de diseño

Pero quiero cambiar la línea de color en EditText de Holo a (por ejemplo) rojo. ¿Cómo se puede hacer eso?

Introduzca aquí la descripción de la imagen

Esta es la mejor herramienta que puedes usar para todas las vistas y sus muchas gracias a @ Jérôme Van Der Linden .

El generador de colores Android Holo le permite crear fácilmente componentes Android como EdiText o spinner con sus propios colores para su aplicación de Android. Generará todos los nueve elementos de parche necesarios, además de los estilos XML dibujables y los estilos que puede copiar directamente en su proyecto.

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

intentalo

Esta imagen puesta en el fondo de EditText

 android:background="@drawable/textfield_activated" 

Introduzca aquí la descripción de la imagen


ACTUALIZAR

Para API 21 o superior, puede utilizar 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" /> 

No me gustan las respuestas anteriores. La mejor solución es usar:

 <android.support.v7.widget.AppCompatEditText app:backgroundTint="@color/blue_gray_light" /> 

Android: backgroundTint para EditText sólo funciona en API21 + . Debido a ello, tenemos que utilizar la biblioteca de soporte y AppCompatEditText .

Nota: tenemos que usar app: backgroundTint en lugar de android: backgroundTint.

También puede cambiar rápidamente el color de subrayado de EditText teñiendo el fondo del EditText así:

 <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Something or Other" android:backgroundTint="@android:color/holo_green_light" /> 

Para cambiar el color de subrayado de Edittext:

Si quieres que toda la aplicación comparta este estilo, puedes hacerlo de la siguiente manera.

(1) vaya al archivo styles.xml. Tu AppTheme que hereda al padre de Theme.AppCompat.Light.DarkActionBar (en mi caso) será el padre base de todos los archivos de estilo en tu aplicación. Cambiar el nombre de la misma a "AppBaseTheme". Hacer otro estilo justo debajo de él que tiene el nombre de AppTheme y hereda de AppBaseTheme que acaba de editar. Se verá como sigue:

 <!-- Base application theme. --> <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="windowActionBar">false</item> <!--see http://www.google.com/design/spec/style/color.html#color-color-palette--> <item name="colorPrimary">@color/material_brown_500</item> <item name="colorPrimaryDark">@color/material_brown_700</item> <item name="colorAccent">@color/flamingo</item> <style name="AppTheme" parent="AppBaseTheme"> <!-- Customize your theme here. --> </style> 

A continuación, cambie el "colorAccent" a cualquier color que desee que el color de la línea EditText sea.

(2) Si tiene otras carpetas de valores con style.xml, este paso es muy importante. Debido a que el archivo heredará de su archivo xml padre anterior. Por ejemplo, tengo valores-19 / styles.xml. Esto es específicamente para Kitkat y superior. Cambie a su padre a AppBaseTheme y asegúrese de deshacerse de "colorAccent" para que no anule el color del padre. También es necesario mantener los elementos que son específicos de la versión 19. Entonces se verá así.

 <resources> <!-- Base application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="android:windowTranslucentStatus">true</item> </style> </resources> 

El color de la línea se define mediante la propiedad de fondo de EditText . Para cambiarlo, debe cambiar el android:background en el archivo de diseño.

Debo señalar que este estilo se logra mediante el uso de un 9-parche dibujable. Si miras en el SDK, puedes ver que el fondo del EditText es esta imagen:

Textfield_activated_holo_light.9.png

Para cambiarlo, puede abrirlo en un programa de manipulación de imágenes y colorearlo en el color deseado. bg_edit_text.9.png como bg_edit_text.9.png y luego póngalo en su carpeta dibujable. Ahora puedes aplicarlo como fondo para tu EditText así:

 android:background="@drawable/bg_edit_text" 

El fondo de los widgets depende del nivel del API .

ALTERNATIVA 1

Puede proporcionar una imagen personalizada a su fondo de EditText

 android:background="@drawable/custom_editText" 

Su imagen debe ser algo como esto. Le dará el efecto deseado.

Introduzca aquí la descripción de la imagen

ALTERNATIVA 2

Establecer este xml a su EditText fondo EditText .

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="10dp"> <solid android:color="#4C000000"/> <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp"/> </shape> 

Esto tendrá la misma apariencia de su EditText en cada API.

Si desea una línea plana, puede hacerlo fácilmente con xml. Aquí está el ejemplo xml:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="-1dp" android:left="-1dp" android:right="-1dp" android:bottom="1dp" > <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#6A9A3A"/> </shape> </item> </layer-list> 

Reemplace la forma con un selector si desea proporcionar diferentes anchos y colores para edittext enfocado.

Utilice este método .. y modifíquelo según sus nombres de vista. Este código funciona muy bien.

  private boolean validateMobilenumber() { if (mobilenumber.getText().toString().trim().isEmpty() || mobilenumber.getText().toString().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()); } 

Creo que la mejor manera es por tema:

 <style name="MyEditTextTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorControlNormal">@color/black</item> <item name="colorControlActivated">@color/action_blue</item> <item name="colorControlHighlight">@color/action_blue</item> </style> <style name="addressbookitem_edit_style" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">13sp</item> <item name="android:theme">@style/MyEditTextTheme</item> <android.support.v7.widget.AppCompatEditText style="@style/addressbookitem_edit_style"/> 

Usar android: propiedad de fondo para ese edittext. Pase su imagen de carpeta dibujable a ella. Por ejemplo,

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

El mejor enfoque es usar un AppCompatEditText con el atributo backgroundTint del espacio de nombres de la app . es decir

  <android.support.v7.widget.AppCompatEditText android:layout_width="match_parent" app:backgroundTint="YOUR COLOR" android:layout_height="wrap_content" /> 

Cuando usamos android:backgroundTint sólo funcionará en API21 o más, pero la app:backgroundTint funciona en todos los niveles de API de su aplicación.

  <EditText android:id="@+id/et_password_tlay" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password" android:textColorHint="#9e9e9e" android:backgroundTint="#000" android:singleLine="true" android:drawableTint="#FF4081" android:paddingTop="25dp" android:textColor="#000" android:paddingBottom="5dp" android:inputType="textPassword"/> <View android:id="@+id/UnderLine" android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@+id/et_password_tlay" android:layout_centerHorizontal="true" android:background="#03f94e" /> 

** es uno de hacer con vista **

Pruebe de la siguiente manera, se convertirá el color de línea inferior de EditText, cuando se utiliza como una propiedad de fondo.

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="@dimen/spacing_neg" android:right="@dimen/spacing_neg" android:top="@dimen/spacing_neg"> <shape> <solid android:color="@android:color/transparent" /> <stroke android:width="@dimen/spacing_1" android:color="@android:color/black" /> </shape> </item> </layer-list> 

Programáticamente, puede probar:

 editText.getBackground().mutate().setColorFilter(getResources().getColor(android.R.color.holo_red_light), PorterDuff.Mode.SRC_ATOP); 
  • Cómo registrar la clase de aplicación en mi archivo de manifiesto
  • XML Lista de permisos de Android completa
  • Android string-array con todos los países en diferentes idiomas
  • ¿Cómo puedo concatenar cadenas estáticas con recursos de cadena XML?
  • Cómo mostrar íconos de elemento en la barra de herramientas Android
  • Android forma xml dibujable - cómo dibujar un formulario u?
  • Desarrollo de Android: error de tema perdido en eclipse ide para archivos xml de diseño
  • ¿Cómo establecer la distancia entre textview y drawable en un botón?
  • Color del borde del botón de Android
  • Descripción de los diseños de diálogo de Android
  • Problema al analizar cadena xml en java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.