it-swarm.com.de

So ändern Sie die Linienfarbe in EditText

Ich erstelle einen EditText in meiner Layout-XML-Datei 

Aber ich möchte die Farblinie in EditText von Holo (zum Beispiel) in Rot ändern. Wie geht das? 

enter image description here

135
Alex

Dies ist das beste Werkzeug, das Sie für alle Ansichten verwenden können. Es ist KOSTENLOS dank @ Jérôme Van Der Linden

Mit dem Android Holo Colors Generator können Sie auf einfache Weise Android-Komponenten wie EdiText oder Spinner mit Ihren eigenen Farben für Ihre Android-Anwendung erstellen. Es werden alle neun erforderlichen Patch-Assets sowie zugehörige XML-Zeichenelemente und -Stile generiert, die Sie direkt in Ihr Projekt kopieren können.

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

UPDATE 1

Diese Domain scheint abgelaufen zu sein, aber das Projekt ist Open Source, das Sie hier finden können

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

versuch es

dieses Bild im Hintergrund von EditText einfügen

Android:background="@drawable/textfield_activated"

enter image description here


UPDATE 2

Für API 21 oder höher können Sie Android:backgroundTint verwenden.

<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 AppCompatEditText Rückenunterstützung 

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

Ich mag keine vorherigen Antworten. Die beste Lösung ist zu verwenden:

<Android.support.v7.widget.AppCompatEditText

      app:backgroundTint="@color/blue_gray_light" />

Android: backgroundTint für EditText funktioniert nur auf API21 + . Aus diesem Grund müssen wir Support Library und AppCompatEditText verwenden. 

Hinweis: Wir müssen app: backgroundTint anstelle von Android: backgroundTint verwenden.

148
Mladen Rakonjac

Sie können die Unterstrichfarbe des EditText auch schnell ändern, indem Sie den Hintergrund des EditText wie folgt tönen:

<EditText
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:hint="Something or Other"
            Android:backgroundTint="@Android:color/holo_green_light" />
66
Damian Esteves

Programmgesteuert können Sie Folgendes versuchen:

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

für ein API unter 21 können Sie ein Theme-Attribut in edittext

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

verwenden Sie diesen Stil in edittext als 

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

ich denke, der beste Weg ist das Thema:

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

Um die Unterstreichungsfarbe von Edittext zu ändern:

Wenn Sie möchten, dass die gesamte App diesen Stil freigibt, können Sie folgendermaßen vorgehen.

(1) Gehen Sie zur Datei styles.xml. Ihre AppTheme, die das übergeordnete Element von Theme.AppCompat.Light.DarkActionBar (in meinem Fall) erbt, wird das Stammeltern aller ihrer Style-Dateien in Ihrer App sein. Ändern Sie den Namen in "AppBaseTheme". Erstellen Sie einen anderen Stil direkt darunter, der den Namen AppTheme hat und von AppBaseTheme erbt, das Sie gerade bearbeitet haben. Es wird wie folgt aussehen:

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

Ändern Sie dann "colorAccent" in die Farbe, in der Sie die Farbe der EditText-Linie haben möchten. 

(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 gilt speziell für KitKat und höher. Ändern Sie das übergeordnete Element in AppBaseTheme und stellen Sie sicher, dass "colorAccent" entfernt wird, damit die Farbe des übergeordneten Elements nicht überschrieben wird. Sie müssen auch die Elemente beibehalten, die für Version 19 spezifisch sind. Dann wird es so aussehen.

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

Die Farbe der Linie wird durch die Hintergrundeigenschaft von EditText definiert. Um es zu ändern, sollten Sie den Android:background in der Layoutdatei ändern.

Ich sollte beachten, dass dieser Stil durch die Verwendung eines 9-Patches erreicht wird. Wenn Sie in das SDK schauen, können Sie sehen, dass der Hintergrund der EditText dieses Bild ist:

textfield_activated_holo_light.9.png

Um es zu ändern, können Sie es in einem Bildbearbeitungsprogramm öffnen und in der gewünschten Farbe einfärben. Speichern Sie es als bg_edit_text.9.png und legen Sie es dann in Ihren Zeichnungsordner. Jetzt können Sie es als Hintergrund für Ihre EditText verwenden:

Android:background="@drawable/bg_edit_text"
6
Egor Neliuba

Es ist ziemlich einfach (Erforderlich: Mindest-API 21) ... 

  1. Gehen Sie zu Ihrer XML-Datei und wählen Sie das Feld EditText aus
  2. Auf der rechten Seite sehen Sie das Fenster 'Attribute'. Wählen Sie "Alle Attribute anzeigen" aus.
  3. Suchen Sie einfach nach "Tönung"
  4. Fügen Sie den 'backgroundTint' zu einer gewünschten Farbe hinzu (oder sagen Sie # FF0000).

 enter image description here

 enter image description here

Codierung beibehalten ........ :)

5

Sie können die Farbe ändern, indem Sie den Hintergrund einfärben <EditText Android:backgroundTint="@color/red"/> 

4
danish

Der Hintergrund von Widgets ist abhängig von API-Ebene .

ALTERNATIVE 1

Sie können Ihrem EditText-Hintergrund ein benutzerdefiniertes Bild zur Verfügung stellen 

Android:background="@drawable/custom_editText"

Ihr Bild sollte ungefähr so ​​aussehen. Sie erhalten den gewünschten Effekt.

enter image description here

ALTERNATIVE 2

Setzen Sie dieses XML auf Ihr Hintergrundattribut 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>

Dies hat das gleiche Aussehen und Verhalten Ihrer EditText auf jeder API.

4
CodeWarrior

Wenn Sie eine flache Linie wünschen, können Sie dies problemlos mit XML tun. Hier ist das XML-Beispiel:

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

Ersetzen Sie die Form durch eine Auswahl, wenn Sie für fokussiertes Edittext unterschiedliche Breite und Farbe angeben möchten.

3
Sfseyhan

Sie können die Farbe von EditText mithilfe der folgenden Codezeile programmgesteuert ändern: edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));

3
matin ashtiani

Verwenden Sie diese Methode .. und ändern Sie sie entsprechend den Ansichtsnamen. Dieser Code funktioniert gut.

 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());
            }
2
Shahid Sarwar

Am besten verwenden Sie ein AppCompatEditText mit backgroundTint-Attribut von app-Namespace. d.h.

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

wenn wir Android:backgroundTint verwenden, funktioniert es nur in API21 oder mehr, aber app:backgroundTint funktioniert auf allen API-Ebenen, die Ihre App unterstützt.

2
Ankush
 <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 mit Sicht zu tun **

Versuchen Sie es folgendermaßen: Es konvertiert die untere Farbe von EditText, wenn es als Hintergrundeigenschaft verwendet wird.

<?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>
1

Verwenden Sie Android: Hintergrundeigenschaft für diesen Edittext. Übergeben Sie Ihr zeichnerisches Ordnerbild an ihn Zum Beispiel

Android:background="@drawable/abc.png"
1
VVB

Dies können Sie einfach tun, indem Sie diesen Android:theme="@style/AppTheme.AppBarOverlay als Attribut für Ihren editText Hinzufügen und diesen <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> zu Ihren Stilen hinzufügen

0
nivla360

drawable/bg_edittext.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:gravity="bottom">
        <shape>
            <size Android:height="1dp" />
            <solid Android:color="@Android:color/black" />
        </shape>
    </item>
</layer-list>

Auf EditText setzen

<Android.support.v7.widget.AppCompatEditText
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:background="@drawable/bg_edittext"/>
0
Ketan Ramani