Vorrei cambiare il colore blu sotto il testo di modifica, non so quale proprietà sia.
Ho provato a usare un colore di sfondo diverso ma non ha funzionato.
Ho allegato un'immagine qui sotto:
Vorrei cambiare il colore blu sotto il testo di modifica, non so quale proprietà sia.
Ho provato a usare un colore di sfondo diverso ma non ha funzionato.
Ho allegato un'immagine qui sotto:
Risposte:
In realtà è abbastanza facile impostare il colore di sottolineatura di un EditText a livello di codice (solo una riga di codice).
Per impostare il colore:
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
Per rimuovere il colore:
editText.getBackground().clearColorFilter();
Nota: quando l'EditText ha il focus sul, il colore impostato non avrà effetto, invece, ha un colore fuoco.
Riferimento API:
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
Renderer
sostituisci? Sto cercando di capire come farlo funzionare per una barra di ricerca.
SearchBarRenderer
di tipo EditText
. Non riesco a farlo funzionare.
Usa android:backgroundTint=""
nel tuo EditText
layout xml.
Per api <21 puoi quindi utilizzare AppCompatEditText
dalla libreria di supportoapp:backgroundTint=""
android:background="@null"
per dispositivi con api <21.
Devi usare un'immagine di sfondo diversa, non un colore, per ogni stato di EditText
(focus, abilitato, attivato).
http://android-holo-colors.com/
Nel sito sopra, puoi ottenere immagini da molti componenti del tema Holo. Basta selezionare "Modifica testo" e il colore desiderato. Puoi vedere un'anteprima in fondo alla pagina.
Scarica il file .zip e copia e incolla le risorse nel tuo progetto (immagini e XML).
se il tuo XML si chiama: apptheme_edit_text_holo_light.xml (o qualcosa di simile):
Vai al tuo XML "styles.xml" e aggiungi lo EditText
stile personalizzato :
<style name="EditTextCustomHolo" parent="android:Widget.EditText">
<item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
<item name="android:textColor">#ffffff</item>
</style>
Basta farlo nel tuo EditText
:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/EditTextCustomHolo"/>
E questo è tutto, spero che ti aiuti.
Funziona bene per la vecchia e la nuova versione di Android (funziona bene anche su API 10!).
Definisci questo stile nel tuo styles.xml
:
<style name="EditText.Login" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="colorAccent">@color/blue</item>
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlActivated">@color/blue</item>
</style>
E ora nel tuo XML, imposta questo come tema e stile ( stile da impostare textColor
e tema per impostare tutte le altre cose):
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
style="@style/EditText.Login"
android:theme="@style/EditText.Login"/>
Questa soluzione causa un piccolo inconveniente dell'interfaccia utente sulle versioni Android più recenti (Lollipop o Marshmallow in poi) in cui le maniglie di selezione sono sottolineate.
Questo problema è discusso in questo thread . (Non ho provato personalmente questa soluzione)
puoi cambiare il colore della sottolineatura di EditText specificandolo in styles.xml . Nel tuo tema dell'app styles.xml aggiungi quanto segue.
<item name="android:textColorSecondary">@color/primary_text_color</item>
Come sottolineato da ana nella sezione commenti
<item name="android:colorControlActivated">@color/black</item>
impostarlo nello stile del tema funziona bene per cambiare il colore di una sottolineatura edittext.
android:textColorSecondary
viene utilizzato anche per determinare il colore della freccia indietro e DrawerLayout
dell'icona dell'hamburger nella ActionBar.
<item name="colorControlNormal">@color/edittext_underline_color</item>
posto di textColorSecondary a causa del problema di colorazione della barra di navigazione.
Quindi, è necessario creare un nuovo file .xml nella cartella disegnabile.
In quel file incolla questo codice:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="8dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/white"/>
</shape>
</item>
</layer-list>
E nel tuo EditText, imposta
android:background="@drawable/your_drawable"
Puoi giocare con il tuo xml disegnabile, impostare angoli, imbottiture, ecc.
Nello stile della tua app definisci la proprietà colorAccent . Qui trovi un esempio
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/action_bar</item>
</style>
Puoi cambiare il colore di EditText a livello di codice usando facilmente questa riga di codice:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
Usa il codice sottostante per cambiare il colore di sfondo del bordo del testo di modifica.
Crea un nuovo file XML sotto drawable.
abc.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>
e aggiungilo come sfondo del tuo testo di modifica
android:background="@drawable/abc"
Per cambiare il colore della linea di fondo, puoi usarlo nel tema della tua app:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#ffe100</item>
<item name="colorControlHighlight">#ffe100</item>
</style>
Per cambiare il colore dell'etichetta mobile scrivi il seguente tema:
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>
e usa questo tema nel tuo layout:
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<EditText
android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:capitalize="characters"
android:hint="User Name"
android:imeOptions="actionNext"
android:inputType="text"
android:singleLine="true"
android:textColor="@android:color/white" />
</android.support.design.widget.TextInputLayout>
Puoi farlo con AppCompatEditText e il selettore di colori:
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="@color/selector_edittext_underline" />
selector_edittext_underline.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/focused_color"
android:state_focused="true" />
<item android:color="@color/hint_color" />
</selector>
Se non devi supportare dispositivi con API <21, usa backgroundHint in xml, ad esempio:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Task Name"
android:ems="10"
android:id="@+id/task_name"
android:layout_marginBottom="15dp"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textColorLink="@color/blue"
android:textColorHint="@color/blue"
android:backgroundTint="@color/lighter_blue" />
Per un migliore supporto e fallback utilizzare la soluzione @Akariuz. backgroundHint è la soluzione più indolore, ma non compatibile con le versioni precedenti, in base alle tue esigenze effettua una chiamata.
Cambia semplicemente android: backgroundTint nel codice xml con il tuo colore