validar texto studio seleccionar salto que obtener mascara linea eventos edittext datos color cambiar android xml layout styles

studio - seleccionar texto edittext android



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

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?


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"/>


El color de la línea está definido por 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 parche de 9 parches. Si miras en el SDK, puedes ver que el fondo de EditText es esta imagen:

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 bg_edit_text.9.png 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 API .

ALTERNATIVA 1

Puede proporcionar una imagen personalizada para su fondo EditText por

android:background="@drawable/custom_editText"

Tu imagen debería verse más o menos así. Le dará el efecto deseado.

ALTERNATIVA 2

Establezca este xml en 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 tu EditText en cada API.


El mejor enfoque es utilizar 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 solo funcionará en API21 o más, pero la app:backgroundTint funciona en todos los niveles de API que tu aplicación hace.


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

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

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

ACTUALIZAR

Este dominio parece caducado pero el proyecto es de código abierto que puedes encontrar aquí

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

intentalo

esta imagen puesta en el fondo de EditText

android:background="@drawable/textfield_activated"

ACTUALIZAR

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

Actualización 2 ahora para AppCompatEditText

Nota: Necesitamos usar la aplicación: backgroundTint en lugar de 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" />


Esto se puede hacer simplemente incluyendo este android:theme="@style/AppTheme.AppBarOverlay como atributo en su editText y agregue este <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> a tus estilos


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 for EditText solo funciona en API21 + . Por eso, tenemos que usar la biblioteca de soporte y AppCompatEditText .

Nota: tenemos que usar la aplicación: backgroundTint en lugar de android: backgroundTint.


Para cambiar el color de subrayado de Edittext:

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

(1) vaya al archivo styles.xml. Su AppThememe que hereda el elemento principal de Theme.AppCompat.Light.DarkActionBar (en mi caso) será el elemento principal básico de todos los archivos de estilo en su aplicación. Cambie el nombre de la misma a "AppBaseTheme". Haga otro estilo justo debajo de él que tenga el nombre de AppTheme y herede 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 "colorAccent" a cualquier color que desee que sea el color de su línea EditText.

(2) Si tiene otras carpetas de valores con style.xml, este paso es muy importante. Porque ese archivo heredará de su archivo xml padre anterior. Por ejemplo, tengo values-19 / styles.xml. Esto es específicamente para Kitkat y superior. Cambie su elemento primario a AppBaseTheme y asegúrese de deshacerse de "colorAccent" para que no anule el color del elemento principal. También necesita 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>


Programáticamente, puedes probar:

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


Pruebe de la siguiente manera, convertirá el color de la línea inferior de EditText, cuando se usa como 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>


Puede cambiar el color con tintado del fondo <EditText android:backgroundTint="@color/red"/>


Puede cambiar el color de EditText mediante programación utilizando solo esta línea de código: edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));


Si quieres una línea plana, puedes 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 el texto de edición enfocado.


También puede cambiar rápidamente el color de subrayado de EditText teñiendo el fondo de EditText de esta forma:

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


Usa android: propiedad de fondo para ese texto de edición. Pase su imagen de carpeta dibujable a ella. Por ejemplo,

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


Use este método ... y modifíquelo según los nombres de su 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()); }


para api por debajo de 21 puede usar el atributo de tema en edittext poner debajo del código en el archivo de estilo

<style name="MyEditTextTheme"> <item name="colorControlNormal">#FFFFFF</item> <item name="colorControlActivated">#FFFFFF</item> <item name="colorControlHighlight">#FFFFFF</item> </style>

usa este estilo en edittext como

<EditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="@dimen/user_input_field_height" android:layout_marginTop="40dp" android:hint="@string/password_hint" android:theme="@style/MyEditTextTheme" android:singleLine="true" />


<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 **