Ich erstelle einen EditText in meiner Layout-XML-Datei
Aber ich möchte die Farblinie in EditText von Holo in (zum Beispiel) Rot ändern. Wie kann das gemacht werden?
Dies ist das beste Tool, das Sie für alle Ansichten verwenden können, und dank @ Jérôme Van Der Linden ist es KOSTENLOS .
Mit dem Android Holo Colors Generator können Sie ganz einfach Android-Komponenten wie EditText
oder Spinner mit Ihren eigenen Farben für Ihre Android-Anwendung erstellen. Es werden alle erforderlichen neun Patch-Assets sowie die dazugehörigen XML-Zeichen und Stile generiert, die Sie direkt in Ihr Projekt kopieren können.
UPDATE 1
Diese Domain scheint abgelaufen zu sein, aber das Projekt ist eine Open Source, die Sie hier finden können
Versuch es
Dieses Bild im Hintergrund von EditText
android:background="@drawable/textfield_activated"
UPDATE 2
Für API 21 oder höher können Sie verwenden 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
Jetzt haben wir mit RückenunterstützungAppCompatEditText
Hinweis: Wir müssen app: backgroundTint anstelle von android: backgroundTint verwenden
<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" />
Ich mag keine vorherigen Antworten. Die beste Lösung ist zu verwenden:
android:backgroundTint
fürEditText
funktioniert nur auf API21 + . Aus diesem Grund müssen wir die Support-Bibliothek und verwendenAppCompatEditText
.Hinweis: Wir müssen
app:backgroundTint
anstelle von verwendenandroid:backgroundTint
AndroidX-Version
quelle
Sie können die Unterstreichungsfarbe des EditText auch schnell ändern, indem Sie den Hintergrund des EditText wie folgt tönen:
quelle
Für APIs unter 21 können Sie das Theme-Attribut verwenden,
EditText
um den folgenden Code in die Style-Datei einzufügenVerwenden Sie diesen Stil in
EditText
asquelle
Programmatisch können Sie versuchen:
quelle
Ich denke, der beste Weg ist nach Thema:
quelle
So ändern Sie die Unterstreichungsfarbe von Edittext:
Wenn Sie möchten, dass die gesamte App diesen Stil teilt, können Sie wie folgt vorgehen.
(1) Gehen Sie zur Datei styles.xml. Ihr AppTheme, das das übergeordnete Element von Theme.AppCompat.Light.DarkActionBar (in meinem Fall) erbt, ist das übergeordnete Element aller Stildateien in Ihrer App. Ändern Sie den Namen in "AppBaseTheme". Erstellen Sie direkt darunter einen anderen Stil, der den Namen AppTheme trägt und von AppBaseTheme erbt, den Sie gerade bearbeitet haben. Es wird wie folgt aussehen:
Ändern Sie dann den „colorAccent“ in die Farbe, die Ihre EditText-Linienfarbe haben soll.
(2) Wenn Sie andere Werteordner mit style.xml haben, ist dieser Schritt sehr wichtig. Weil diese Datei von Ihrer vorherigen übergeordneten XML-Datei erbt. Zum Beispiel habe ich values-19 / styles.xml. Dies ist speziell für Kitkat und höher. Ändern Sie das übergeordnete Element in AppBaseTheme und entfernen Sie "colorAccent", damit die übergeordnete Farbe nicht überschrieben wird. Außerdem müssen Sie die für Version 19 spezifischen Elemente behalten. Dann sieht es so aus.
quelle
Es ist ziemlich einfach (Erforderlich: Minimum API 21) ...
Codierung weiter ........ :)
quelle
Die Farbe der Linie wird durch
EditText
die Hintergrundeigenschaft definiert . Um es zu ändern, sollten Sie dasandroid:background
in der Layoutdatei ändern .Ich sollte beachten, dass dieser Stil durch die Verwendung eines 9-Patch-Drawable erreicht wird. Wenn Sie in das SDK schauen, können Sie sehen, dass der Hintergrund des
EditText
folgenden Bildes ist:Um es zu ändern, können Sie es in einem Bildbearbeitungsprogramm öffnen und in der gewünschten Farbe ausmalen. Speichern Sie es als
bg_edit_text.9.png
und legen Sie es dann in Ihrem Zeichenordner ab. Jetzt können Sie es als Hintergrund für IhreEditText
Art anwenden, so:quelle
Sie können die Farbe von EditText programmgesteuert ändern, indem Sie nur diese Codezeile verwenden:
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
quelle
Der Hintergrund von Widgets hängt von der API-Ebene ab .
ALTERNATIVE 1
Sie können Ihrem
EditText
Hintergrund ein benutzerdefiniertes Bild hinzufügen, indem SieIhr Bild sollte ungefähr so aussehen. Es gibt Ihnen den gewünschten Effekt.
ALTERNATIVE 2
Setzen Sie diese XML auf Ihr
EditText
Hintergrundattribut.Dies sieht
EditText
auf jeder API gleich aus.quelle
Sie können die Farbe ändern, indem Sie den Hintergrund tönen
<EditText android:backgroundTint="@color/red"/>
quelle
drawable / bg_edittext.xml
Auf EditText setzen
quelle
Verwenden Sie diese Methode .. und ändern Sie sie entsprechend Ihren Ansichtsnamen. Dieser Code funktioniert hervorragend.
quelle
Wenn Sie eine flache Linie wünschen, können Sie dies einfach mit XML tun. Hier ist das XML-Beispiel:
Ersetzen Sie die Form durch einen Selektor, wenn Sie für fokussierten Edittext eine andere Breite und Farbe bereitstellen möchten.
quelle
Der beste Ansatz ist die Verwendung eines
AppCompatEditText
with-backgroundTint
Attributs desapp
Namespace. dhWenn wir
android:backgroundTint
es verwenden, funktioniert es nur in API21 oder höher, aberapp:backgroundTint
auf allen API-Ebenen, die Ihre App ausführt .quelle
Verwenden Sie die Eigenschaft android: background für diesen Edittext. Übergeben Sie Ihr Zeichenordnerbild. Beispielsweise,
quelle
** es geht darum, mit Aussicht zu tun **
quelle
Versuchen Sie Folgendes: Es wird die Grundfarbe von EditText konvertiert, wenn es als Hintergrundeigenschaft verwendet wird.
quelle
Dies können Sie einfach tun, indem Sie dies
android:theme="@style/AppTheme.AppBarOverlay
als Attribut für Ihren editText einfügen und dies<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
Ihren Stilen hinzufügenquelle